version: '3.4' x-restart-policy: &restart_policy restart: unless-stopped services: database: << : *restart_policy image: postgres:11.20-alpine logging: driver: none environment: POSTGRES_USER: main POSTGRES_PASSWORD: main POSTGRES_DB: main volumes: - postgres-data:/var/lib/postgresql/data app: << : *restart_policy image: buddy/repman:1.3.4 sysctls: net.core.somaxconn: 2048 command: > bash -c 'bin/console d:m:m --no-interaction && bin/console messenger:setup-transports --no-interaction && bin/console repman:security:update-db && bin/console assets:install && php-fpm' env_file: .env.docker volumes: - app-var:/app/var - /app/var/cache - app-public:/app/public depends_on: - database consumer: << : *restart_policy image: buddy/repman:1.3.4 command: ['bin/console', 'messenger:consume', 'async', '--limit=500'] env_file: .env.docker volumes: - app-var:/app/var - /app/var/cache depends_on: - app cron: << : *restart_policy image: buddy/repman:1.3.4 command: ['crond', '-f', '-L', '/app/var/log/cron.log'] env_file: .env.docker volumes: - app-var:/app/var - /app/var/cache - docker-crontabs:/var/spool/cron/crontabs depends_on: - app nginx: << : *restart_policy image: nginx:1.17-alpine env_file: .env.docker command: ['/nginx/start.sh'] ports: - 443:443 depends_on: - app volumes: - app-public:/app/public - docker-logs-nginx:/var/log/nginx - docker-nginx-scripts:/nginx - docker-nginx-ssl-certs:/etc/ssl/certs - docker-nginx-ssl-private:/etc/ssl/private volumes: postgres-data: app-var: driver: local driver_opts: type: none device: $PWD/var o: bind app-public: driver: local driver_opts: type: none device: $PWD/public o: bind docker-logs-nginx: driver: local driver_opts: type: none device: $PWD/docker/logs/nginx o: bind docker-nginx-scripts: driver: local driver_opts: type: none device: $PWD/docker/nginx/scripts o: bind docker-nginx-ssl-certs: driver: local driver_opts: type: none device: $PWD/docker/nginx/ssl/certs o: bind docker-nginx-ssl-private: driver: local driver_opts: type: none device: $PWD/docker/nginx/ssl/private o: bind docker-crontabs: driver: local driver_opts: type: none device: $PWD/docker/crontabs o: bind