12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- version: '3'
- services:
- nginx:
- image: nginx:alpine
- depends_on:
- - php
- restart: always
- tty: false
- ports:
- - "80:80"
- - "443:443"
- volumes:
- # Nginx
- - ./docker/nginx/nginx.conf:/var/nginx/social.conf
- - ./docker/nginx/domain.sh:/var/nginx/domain.sh
- # Certbot
- - ./docker/certbot/www:/var/www/certbot
- - ./docker/certbot/.files:/etc/letsencrypt
- # Social
- - ./public:/var/www/social/public
- env_file:
- - ./docker/bootstrap/bootstrap.env
- - ./docker/db/db.env
- command: /bin/sh -c '/var/nginx/domain.sh;
- while :; do
- sleep 6h & wait $${!};
- nginx -s reload;
- done &
- nginx -g "daemon off;"'
- certbot:
- image: certbot/certbot
- # Check for certificate renewal every 12h as
- # recommended by Let's Encrypt
- entrypoint: /bin/sh -c 'trap exit TERM;
- while :; do
- certbot renew > /dev/null;
- sleep 12h & wait $${!};
- done'
- volumes:
- - ./docker/certbot/www:/var/www/certbot
- - ./docker/certbot/.files:/etc/letsencrypt
- php:
- build: docker/php
- restart: always
- tty: true
- ports:
- - 9000:9000
- volumes:
- # Entrypoint
- - ./docker/php/entrypoint.sh:/entrypoint.sh
- - ./docker/db/wait_for_db.sh:/wait_for_db.sh
- - ./docker/social/install.sh:/var/entrypoint.d/social_install.sh
- # Main files
- - .:/var/www/social
- env_file:
- - ./docker/social/social.env
- - ./docker/db/db.env
- command: /entrypoint.sh
- db:
- image: postgres:alpine
- restart: always
- tty: false
- ports:
- - 3306:3306
- env_file:
- - ./docker/db/db.env
- redis:
- image: redis:alpine
- restart: always
- tty: false
- ports:
- - 6379:6379
- mail:
- build: docker/mail
- env_file:
- - ./docker/mail/mail.env
- ports:
- - 25:25
- - 110:110
- - 143:143
- - 587:587
- - 993:993
- volumes:
- - ./docker/mail/mail:/var/mail
- - ./docker/mail/config:/etc/mail
- # Certbot
- - ./docker/certbot/www:/var/www/certbot
- - ./docker/certbot/.files:/etc/letsencrypt
- volumes:
- database:
|