123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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:
- image: gsocial/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
- - /var/www/social/docker # exclude docker folder
- 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
- volumes:
- - ./docker/redis/redis.conf:/etc/redis/redis.conf
- ports:
- - 6379:6379
- command: redis-server /etc/redis/redis.conf
- worker:
- image: gsocial/php
- restart: always
- tty: true
- 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
- - ./docker/social/worker.sh:/var/entrypoint.d/social_worker.sh
- # Main files
- - .:/var/www/social
- - /var/www/social/docker # exclude docker folder
- env_file:
- - ./docker/social/social.env
- - ./docker/db/db.env
- command: /entrypoint.sh
- volumes:
- database:
|