110 lines
2.4 KiB
YAML
110 lines
2.4 KiB
YAML
|
---
|
||
|
version: '3'
|
||
|
|
||
|
# In order to set configuration, please use a .env file in
|
||
|
# your compose project directory (the same directory as your
|
||
|
# docker-compose.yml), and set database options, application
|
||
|
# name, key, and other settings there.
|
||
|
# A list of available settings is available in .env.example
|
||
|
#
|
||
|
# The services should scale properly across a swarm cluster
|
||
|
# if the volumes are properly shared between cluster members.
|
||
|
|
||
|
services:
|
||
|
## App and Worker
|
||
|
pixelfed-app:
|
||
|
# Comment to use dockerhub image
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: contrib/docker/Dockerfile.fpm
|
||
|
image: porttown.solarpunk.moe/pixelfed
|
||
|
restart: unless-stopped
|
||
|
env_file:
|
||
|
- .env.docker
|
||
|
volumes:
|
||
|
- app-storage:/var/www/storage
|
||
|
- app-bootstrap:/var/www/bootstrap
|
||
|
- "./.env.docker:/var/www/.env"
|
||
|
networks:
|
||
|
internal:
|
||
|
external:
|
||
|
mail:
|
||
|
|
||
|
depends_on:
|
||
|
- db
|
||
|
- redis
|
||
|
|
||
|
worker:
|
||
|
build:
|
||
|
context: .
|
||
|
dockerfile: contrib/docker/Dockerfile.fpm
|
||
|
image: porttown.solarpunk.moe/pixelfed
|
||
|
restart: unless-stopped
|
||
|
env_file:
|
||
|
- .env.docker
|
||
|
volumes:
|
||
|
- app-storage:/var/www/storage
|
||
|
- app-bootstrap:/var/www/bootstrap
|
||
|
networks:
|
||
|
- internal
|
||
|
- mail
|
||
|
command: gosu www-data php artisan horizon
|
||
|
depends_on:
|
||
|
- db
|
||
|
- redis
|
||
|
|
||
|
## DB and Cache
|
||
|
db:
|
||
|
image: mysql:8.0
|
||
|
restart: unless-stopped
|
||
|
networks:
|
||
|
- internal
|
||
|
command: --default-authentication-plugin=mysql_native_password
|
||
|
env_file:
|
||
|
- .env.docker
|
||
|
volumes:
|
||
|
- "db-data:/var/lib/lib/mysql"
|
||
|
|
||
|
redis:
|
||
|
image: redis:5-alpine
|
||
|
restart: unless-stopped
|
||
|
env_file:
|
||
|
- .env.docker
|
||
|
volumes:
|
||
|
- "redis-data:/data"
|
||
|
networks:
|
||
|
- internal
|
||
|
|
||
|
nginx:
|
||
|
image: nginx
|
||
|
restart: always
|
||
|
command: /var/www/start.nginx.sh
|
||
|
networks:
|
||
|
- httpsproxy
|
||
|
- external
|
||
|
volumes:
|
||
|
- ./contrib/docker-nginx.conf:/etc/nginx/templates/default.conf.template
|
||
|
- ./contrib/docker/start.nginx.sh:/var/www/start.nginx.sh
|
||
|
- ./public:/var/www/public
|
||
|
- app-storage:/var/www/storage
|
||
|
environment:
|
||
|
- LETSENCRYPT_HOST=pix.solarpunk.moe
|
||
|
- VIRTUAL_HOST=pix.solarpunk.moe
|
||
|
- VIRTUAL_PORT=80
|
||
|
- NGINX_PORT=80
|
||
|
|
||
|
volumes:
|
||
|
db-data:
|
||
|
redis-data:
|
||
|
app-storage:
|
||
|
app-bootstrap:
|
||
|
|
||
|
networks:
|
||
|
internal:
|
||
|
internal: true
|
||
|
external:
|
||
|
mail:
|
||
|
external: true
|
||
|
httpsproxy:
|
||
|
external: true
|