forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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:
 |