Files
compress/docker-compose.yml
Dmitriy Fofanov eee9a4a093 Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия GPL.
- Добавлен файл LICENSE с лицензией GNU General Public License версии 3.0.
- Создан скрипт PowerShell (build-all.ps1) для сборки двоичных файлов Windows и Linux из Windows с использованием кросс-компиляции.
- Разработан скрипт сборки Linux (build-linux.sh) для сборки двоичных файлов Linux.
- Реализован скрипт PowerShell (build-windows.ps1) для сборки двоичных файлов Windows.
- Каждый скрипт сборки включает упаковку и генерацию контрольной суммы SHA256 для двоичных файлов.
2025-11-05 13:05:49 +03:00

144 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Docker Compose конфигурация для Compress
version: '3.8'
services:
# Основное приложение Compress
compress:
build:
context: .
dockerfile: Dockerfile
args:
- GO_VERSION=1.24
image: compress:latest
container_name: compress-app
# Перезапуск при ошибках
restart: unless-stopped
# Переменные окружения
environment:
- APP_CONFIG_PATH=/app/config/config.yaml
- APP_LOG_LEVEL=info
- APP_INPUT_DIR=/app/input
- APP_OUTPUT_DIR=/app/output
- APP_LOGS_DIR=/app/logs
# Монтирование томов
volumes:
# Входные PDF файлы
- ./input_pdfs:/app/input:ro
# Выходная папка для сжатых файлов
- ./output_pdfs:/app/output:rw
# Конфигурация
- ./config.yaml:/app/config/config.yaml:ro
# Логи
- ./logs:/app/logs:rw
# Ограничения ресурсов
deploy:
resources:
limits:
cpus: '2.0'
memory: 1G
reservations:
cpus: '0.5'
memory: 256M
# Сеть
networks:
- compress-network
# Лейблы для мониторинга
labels:
- "traefik.enable=false"
- "com.compress.description=Сompress Application"
- "com.compress.version=1.0.0"
# Healthcheck
healthcheck:
test: ["CMD", "compress", "--version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# Файловый браузер для управления файлами (опционально)
filebrowser:
image: filebrowser/filebrowser:v2
container_name: compress-filebrowser
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./input_pdfs:/srv/input:rw
- ./output_pdfs:/srv/output:rw
- ./filebrowser.db:/database/filebrowser.db
- ./filebrowser-config.json:/config/settings.json
environment:
- FB_DATABASE=/database/filebrowser.db
- FB_CONFIG=/config/settings.json
command: --config /config/settings.json
networks:
- compress-network
labels:
- "traefik.enable=true"
- "traefik.http.routers.filebrowser.rule=Host(`filebrowser.localhost`)"
- "traefik.http.routers.filebrowser.entrypoints=web"
- "traefik.http.services.filebrowser.loadbalancer.server.port=80"
# Мониторинг логов (опционально)
log-viewer:
image: gohutool/docker-log-viewer:latest
container_name: compress-logs
restart: unless-stopped
ports:
- "8081:8080"
volumes:
- ./logs:/logs:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- LOG_FILES=/logs/*.log
networks:
- compress-network
# Сети
networks:
compress-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
# Именованные тома
volumes:
input_pdfs:
driver: local
driver_opts:
type: none
device: ${PWD}/input_pdfs
o: bind
output_pdfs:
driver: local
driver_opts:
type: none
device: ${PWD}/output_pdfs
o: bind
logs:
driver: local
driver_opts:
type: none
device: ${PWD}/logs
o: bind