Files
no-copy/docker-compose.yaml
T

106 lines
2.7 KiB
YAML
Raw Normal View History

version: '3.9'
services:
2026-01-19 19:26:59 +07:00
postfix:
image: boky/postfix:latest
container_name: postfix-production
hostname: ${DOMAIN:-no-copy.ru}
environment:
- DOMAIN=${DOMAIN:-no-copy.ru}
- ALLOWED_SENDER_DOMAINS=*
- RELAYHOST=
- DISABLE_SMTP_AUTH=
- SMTP_USERNAME=${MAIL_USERNAME:-noreply@no-copy.ru}
- SMTP_PASSWORD=${SMTP_PASSWORD:-nocopy!nocopy!}
- RELAY_NETWORKS=172.16.0.0/12
- POSTFIX_mynetworks=127.0.0.0/8 172.17.0.0/16 172.16.0.0/12
- POSTFIX_smtpd_relay_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
- POSTFIX_smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
- DISABLE_SIGNING=true
ports:
- "25:25"
- "587:587"
networks:
- app-network
restart: unless-stopped
2025-12-23 16:05:51 +07:00
storage:
image: alpine:latest
container_name: file-storage
networks:
- app-network
volumes:
- uploads_data:/storage:rw
command: tail -f /dev/null
restart: unless-stopped
db:
2026-01-15 16:17:03 +07:00
image: postgres:17.7
2026-01-19 19:26:59 +07:00
container_name: postgres
environment:
2025-11-24 22:39:08 +07:00
POSTGRES_DB: no_copy_
2026-01-15 16:17:03 +07:00
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
2025-12-30 12:08:23 +07:00
POSTGRES_SHARED_BUFFERS: 512MB
POSTGRES_EFFECTIVE_CACHE_SIZE: 1536MB
ports:
2025-11-24 22:39:08 +07:00
- "54320:5432"
volumes:
- pgdata:/var/lib/postgresql/data
2026-01-15 16:17:03 +07:00
- ./init-scripts:/docker-entrypoint-initdb.d:ro
2025-12-03 16:56:49 +07:00
networks:
2025-12-04 10:50:26 +07:00
app-network:
aliases:
- database
2026-01-19 19:26:59 +07:00
restart: unless-stopped
app:
2025-12-03 16:56:49 +07:00
build: .
2025-12-04 10:50:26 +07:00
container_name: app-backend
environment:
2025-12-16 03:44:59 +07:00
FILE_STORAGE_PATH: /data/uploads
2025-12-25 13:04:49 +07:00
MAX_FILE_SIZE: 10737418240
2026-01-08 12:59:30 +07:00
FILE_CHUNK_SIZE: 1000000
2025-11-24 22:39:08 +07:00
POSTGRES_DB: no_copy_
2026-01-15 16:17:03 +07:00
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_PORT: 5432
2025-11-24 22:39:08 +07:00
POSTGRES_HOST: db
2025-12-23 16:05:51 +07:00
STORAGE_SERVICE_URL: http://storage:8081
2026-01-10 00:35:29 +07:00
SPRING_PROFILES_ACTIVE: docker
2026-01-19 19:26:59 +07:00
MAIL_HOST: postfix
MAIL_PORT: 25
MAIL_USERNAME: noreply@no-copy.ru
SMTP_PASSWORD: nocopy!nocopy!
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE: "false"
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH: "false"
SPRING_MAIL_PROPERTIES_MAIL_DEBUG: "true"
depends_on:
2025-11-24 22:39:08 +07:00
- db
2026-01-19 19:26:59 +07:00
- postfix
ports:
2025-12-04 14:15:50 +07:00
- "80:8080"
2025-12-03 16:56:49 +07:00
networks:
2025-12-04 10:50:26 +07:00
app-network:
aliases:
- app
- backend
- api
2025-12-15 19:49:09 +07:00
volumes:
2025-12-23 16:05:51 +07:00
- uploads_data:/data/uploads:rw
2026-01-15 16:17:03 +07:00
healthcheck:
2026-01-19 19:26:59 +07:00
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d no_copy_"]
2026-01-15 16:17:03 +07:00
interval: 10s
retries: 5
2026-01-19 19:26:59 +07:00
restart: unless-stopped
2025-11-25 13:31:50 +07:00
volumes:
2025-11-25 13:31:50 +07:00
pgdata:
2025-12-23 16:05:51 +07:00
uploads_data:
2026-01-19 19:26:59 +07:00
postfix-data:
2025-12-03 16:56:49 +07:00
networks:
app-network:
2025-12-04 10:26:00 +07:00
external: true
2026-01-19 19:26:59 +07:00
driver: bridge