106 lines
2.7 KiB
YAML
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
|