forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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
 | 
						|
 | 
						|
volumes:
 | 
						|
  database:
 |