1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- version: '3.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
- depends_on:
- - nginx
- # Check for certificate renewal every 12h as
- # recomnended by Let's Encryot
- 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
- depends_on:
- - db
- 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:
- - 5432:5432
- environment:
- - PGDATA=/var/lib/postgres/data
- env_file:
- - ./docker/db/db.env
- volumes:
- - database:/var/lib/postgres/data
- redis:
- image: redis:alpine
- restart: always
- tty: false
- ports:
- - 6379:6379
- volumes:
- database:
|