Files
no-copy/docker-compose.yaml
T
vladp 4a8e561258
Test Workflow / test (push) Successful in 2s
NCBACK-33 add email send
2026-01-19 19:26:59 +07:00

106 lines
2.7 KiB
YAML

version: '3.9'
services:
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
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:
image: postgres:17.7
container_name: postgres
environment:
POSTGRES_DB: no_copy_
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_SHARED_BUFFERS: 512MB
POSTGRES_EFFECTIVE_CACHE_SIZE: 1536MB
ports:
- "54320:5432"
volumes:
- pgdata:/var/lib/postgresql/data
- ./init-scripts:/docker-entrypoint-initdb.d:ro
networks:
app-network:
aliases:
- database
restart: unless-stopped
app:
build: .
container_name: app-backend
environment:
FILE_STORAGE_PATH: /data/uploads
MAX_FILE_SIZE: 10737418240
FILE_CHUNK_SIZE: 1000000
POSTGRES_DB: no_copy_
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_PORT: 5432
POSTGRES_HOST: db
STORAGE_SERVICE_URL: http://storage:8081
SPRING_PROFILES_ACTIVE: docker
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:
- db
- postfix
ports:
- "80:8080"
networks:
app-network:
aliases:
- app
- backend
- api
volumes:
- uploads_data:/data/uploads:rw
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d no_copy_"]
interval: 10s
retries: 5
restart: unless-stopped
volumes:
pgdata:
uploads_data:
postfix-data:
networks:
app-network:
external: true
driver: bridge