development/docker-compose.yml

99 lines
2.7 KiB
YAML

version: '3.8'
services:
traefik:
image: traefik:2.6
restart: always
networks:
- pterodactyl
ports:
- "443:443"
- "8080:8080"
security_opt:
- no-new-privileges=true
volumes:
- ./traefik:/etc/traefik:ro
- ./.data/certificates:/etc/certs:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
app:
build:
context: ./build/panel
dockerfile: Dockerfile
networks:
pterodactyl:
aliases:
- pterodactyl.test
volumes:
- ./code/panel:/var/www/html:cached
- ./docker/certificates:/etc/ssl/private: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.services.app.loadbalancer.server.port=80"
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:delegated
- ./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:delegated
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:
mysql:
driver: local
minio:
driver: local