version: '3' services: layersdb: image: mariadb:10.3 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --wait_timeout=28800 --max_allowed_packet=128M environment: - "MYSQL_DATABASE=layersdb" - "MYSQL_ROOT_PASSWORD=testingpw" restart: unless-stopped layersapp: depends_on: - layersdb build: . image: halstead/layerindex-app hostname: localhost volumes: - layersmeta:/opt/workdir - logvolume:/opt/layerindex-task-logs:z environment: #- "SECRET_KEY=" - "DATABASE_USER=root" - "DATABASE_PASSWORD=testingpw" - "DATABASE_HOST=layersdb" - "RABBITMQ_DEFAULT_USER=guest" - "RABBITMQ_DEFAULT_PASS=guest" #- "EMAIL_HOST=" #- "EMAIL_PORT=" #- "EMAIL_USER=" #- "EMAIL_PASSWORD=" #- "EMAIL_USE_SSL=" #- "EMAIL_USE_TLS=" #- "DEBUG=1" restart: unless-stopped layersweb: depends_on: - layersapp build: context: . dockerfile: Dockerfile.web image: halstead/layerindex-web hostname: localhost ports: - "8080:80" ## For production you want these instead # - "80:80" # - "443:443" volumes: - layersstatic:/usr/share/nginx/html - ./docker/certs:/opt/cert - certbotwww:/var/www/certbot:z command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" restart: unless-stopped layersrabbit: image: rabbitmq:alpine restart: unless-stopped environment: - "RABBITMQ_DEFAULT_USER=guest" - "RABBITMQ_DEFAULT_PASS=guest" layerscelery: depends_on: - layersdb - layersapp - layersrabbit image: halstead/layerindex-app volumes: - layersmeta:/opt/workdir - logvolume:/opt/layerindex-task-logs:z environment: #- "SECRET_KEY=" - "DATABASE_USER=layers" - "DATABASE_PASSWORD=testingpw" - "DATABASE_HOST=layersdb" - "RABBITMQ_DEFAULT_USER=guest" - "RABBITMQ_DEFAULT_PASS=guest" #- "EMAIL_HOST=" #- "EMAIL_PORT=" #- "EMAIL_USER=" #- "EMAIL_PASSWORD=" #- "EMAIL_USE_SSL=" #- "EMAIL_USE_TLS=" #- "DEBUG=1" restart: unless-stopped command: /usr/local/bin/celery --workdir=/opt/layerindex --app layerindex.tasks worker --loglevel=INFO #layerscertbot: # image: certbot/certbot # volumes: # - ./docker/certs:/opt/cert # - certbotwww:/var/www/certbot:z # entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'" volumes: layersmeta: layersstatic: logvolume: certbotwww: