development/docker-compose.yml
2022-02-12 12:54:38 -05:00

150 lines
4.1 KiB
YAML

version: '3.8'
services:
traefik:
image: traefik:2.6
restart: always
networks:
pterodactyl:
aliases:
- pterodactyl.test
- minio.pterodactyl.test
- s3.minio.pterodactyl.test
- wings.pterodactyl.test
ports:
- "443:443"
- "8080:8080"
security_opt:
- no-new-privileges=true
volumes:
- ./traefik:/etc/traefik:ro
- ./docker/certificates:/etc/certs:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
app:
build:
context: ./build/panel
dockerfile: Dockerfile
stop_grace_period: '1s'
networks:
pterodactyl:
aliases:
- pterodactyl.test
volumes:
- panel_code:/var/www/html
- ./docker/certificates:/etc/certs:ro
- ./docker/php:/etc/php/mods-available:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.app.tls=true"
- "traefik.http.routers.app.rule=Host(`pterodactyl.test`)"
- "traefik.http.routers.app.entrypoints=https"
- "traefik.http.routers.app.service=app"
- "traefik.http.services.app.loadbalancer.server.port=80"
- "traefik.http.routers.hmr.tls=true"
- "traefik.http.routers.hmr.rule=Host(`hmr.pterodactyl.test`)"
- "traefik.http.routers.hmr.entrypoints=https"
- "traefik.http.routers.hmr.service=hmr"
- "traefik.http.services.hmr.loadbalancer.server.port=8080"
wings:
build:
context: ./build/wings
dockerfile: Dockerfile
stop_grace_period: '1s'
tty: true
stdin_open: true
networks:
- pterodactyl
ports:
- "2022:2022"
volumes:
- ./code/wings:/home/root/wings
- wings_data:/var/lib/pterodactyl
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.wings.tls=true"
- "traefik.http.routers.wings.rule=Host(`wings.pterodactyl.test`)"
- "traefik.http.routers.wings.entrypoints=https"
- "traefik.http.services.wings.loadbalancer.server.port=8080"
mysql:
image: mariadb:10.7
restart: unless-stopped
ports:
- "3306:3306"
command:
- --innodb-buffer-pool-size=1G
- --innodb-log-file-size=256M
- --innodb-flush-log-at-trx-commit=0
- --lower-case-table-names=1
volumes:
- mysql:/var/lib/mysql
- ./docker/mysql:/docker-entrypoint-initdb.d:ro
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: panel
MYSQL_USER: pterodactyl
MYSQL_PASSWORD: pterodactyl
networks:
- pterodactyl
redis:
image: redis:alpine
restart: unless-stopped
networks:
- pterodactyl
minio:
image: minio/minio:RELEASE.2022-02-05T04-40-59Z
restart: unless-stopped
command: server --console-address ":9001" /var/lib/minio
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: password
expose:
- 9000
- 9001
networks:
pterodactyl:
aliases:
- s3.minio.pterodactyl.test
volumes:
- minio:/var/lib/minio
labels:
- "traefik.enable=true"
- "traefik.http.routers.minio.tls=true"
- "traefik.http.routers.minio.rule=Host(`s3.minio.pterodactyl.test`)"
- "traefik.http.routers.minio.entrypoints=https"
- "traefik.http.routers.minio.service=minio"
- "traefik.http.routers.minio-console.tls=true"
- "traefik.http.routers.minio-console.rule=Host(`minio.pterodactyl.test`)"
- "traefik.http.routers.minio-console.entrypoints=https"
- "traefik.http.routers.minio-console.service=minio-console"
- "traefik.http.services.minio.loadbalancer.server.port=9000"
- "traefik.http.services.minio-console.loadbalancer.server.port=9001"
networks:
pterodactyl:
driver: bridge
volumes:
panel_code:
mysql:
driver: local
minio:
driver: local
wings_data:
driver: local
x-mutagen:
sync:
defaults:
permissions:
defaultFileMode: 0666
defaultDirectoryMode: 0777
code:
alpha: "./code/panel"
beta: "volume://panel_code"
mode: "two-way-resolved"
ignore:
vcs: true
paths:
- ".idea"