forked from rajun/ar-test
95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
version: "3.9"
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|
|
|
|
volumes:
|
|
pb_data:
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:v3.6
|
|
container_name: traefik
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "8080:8080"
|
|
command:
|
|
- "--api.dashboard=true"
|
|
- "--api.insecure=true"
|
|
- "--log.level=DEBUG"
|
|
- "--accesslog=true"
|
|
- "--entrypoints.web.address=:80"
|
|
- "--entrypoints.websecure.address=:443"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--certificatesresolvers.letsencrypt.acme.email=tech@thob.studio"
|
|
- "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json"
|
|
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
|
|
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
|
|
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- "./configs/traefik/acme.json:/etc/traefik/acme.json"
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.traefik.service=api@internal"
|
|
- "traefik.http.routers.traefik.entrypoints=websecure"
|
|
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.traefik.rule=Host(`traefik.ar.thob.studio`)"
|
|
|
|
app:
|
|
container_name: ar-app
|
|
image: registry.digitalocean.com/thob-blr1/ar:latest
|
|
pull_policy: always
|
|
restart: unless-stopped
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
- VITE_POCKETBASE_URL=${VITE_POCKETBASE_URL:-https://pb.ar.thob.studio}
|
|
expose:
|
|
- "3000"
|
|
environment:
|
|
- VITE_POCKETBASE_URL=${VITE_POCKETBASE_URL:-https://pb.ar.thob.studio}
|
|
- VITE_FRONTEND_URL=${VITE_FRONTEND_URL:-https://ar.thob.studio}
|
|
depends_on:
|
|
- pocketbase
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.ar-app.rule=Host(`ar.thob.studio`)"
|
|
- "traefik.http.routers.ar-app.entrypoints=websecure"
|
|
- "traefik.http.routers.ar-app.tls=true"
|
|
- "traefik.http.routers.ar-app.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.ar-app.loadbalancer.server.port=3000"
|
|
|
|
pocketbase:
|
|
container_name: ar-pb
|
|
image: ghcr.io/muchobien/pocketbase:latest
|
|
restart: unless-stopped
|
|
command:
|
|
- serve
|
|
- --http=0.0.0.0:8090
|
|
- --dir=/pb_data
|
|
- --migrationsDir=/pb_migrations
|
|
volumes:
|
|
- pb_data:/pb_data
|
|
- ./pb_migrations:/pb_migrations
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.ar-pb.rule=Host(`pb.ar.thob.studio`)"
|
|
- "traefik.http.routers.ar-pb.entrypoints=websecure"
|
|
- "traefik.http.routers.ar-pb.tls=true"
|
|
- "traefik.http.routers.ar-pb.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.ar-pb.loadbalancer.server.port=8090"
|