-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose-prod.yml
103 lines (98 loc) · 3.14 KB
/
docker-compose-prod.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
services:
traefik:
image: traefik:v2.3
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- ./data/letsencrypt:/letsencrypt:z
- /var/run/docker.sock:/var/run/docker.sock:ro,z
fuseki:
image: semapps/jena-fuseki-webacl
volumes:
- ./data/fuseki:/fuseki:z
ports:
- "3030:3030"
expose:
- "3030"
environment:
ADMIN_PASSWORD: ${FUSEKI_PASSWORD}
app-frontend:
build:
context: .
dockerfile: ./docker/frontend.dockerfile
args:
VITE_APP_NAME: $APP_NAME
VITE_BACKEND_URL: https://${DOMAIN_NAME}${BACKEND_PATH}
VITE_BACKEND_CLIENT_ID: https://${DOMAIN_NAME}${BACKEND_PATH}/app
VITE_POD_PROVIDER_BASE_URL: $POD_PROVIDER_BASE_URL
VITE_PORT: 4000
image: $FRONTEND_DOCKER_IMAGE
restart: always
expose:
- "4000"
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend.rule=Host(`${DOMAIN_NAME}`)"
- "traefik.http.routers.frontend.entrypoints=websecure"
- "traefik.http.routers.frontend.tls.certresolver=myresolver"
app-backend:
build:
context: .
dockerfile: ./docker/backend.dockerfile
image: $BACKEND_DOCKER_IMAGE
depends_on:
- fuseki
- redis
volumes:
- ./data/backend/logs:/app/backend/logs:z
- ./data/backend/jwt:/app/backend/jwt:z
- ./data/backend/uploads:/app/backend/uploads:z
expose:
- "3000"
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.rule=(Host(`${DOMAIN_NAME}`) && (PathPrefix(`${BACKEND_PATH}`) || PathPrefix(`/.well-known`)))"
- "traefik.http.routers.backend.entrypoints=websecure"
- "traefik.http.routers.backend.tls.certresolver=myresolver"
env_file:
- ./backend/.env
- ./backend/.env.production
- path: ./backend/.env.production.local
required: false
redis:
image: redis
expose:
- "6379"
volumes:
- ./data/redis:/data:z
command: [ "redis-server", "--appendonly", "yes" ]
arena:
image: activitypods/arena
restart: always
volumes:
- ./docker/arena-prod.json:/opt/arena/src/server/config/index.json:z
depends_on:
- redis
expose:
- "4567"
labels:
- "traefik.enable=true"
- "traefik.http.routers.arena.rule=(Host(`${DOMAIN_NAME}`) && Path(`/jobs`))"
- "traefik.http.routers.arena.entrypoints=websecure"
- "traefik.http.routers.arena.tls.certresolver=myresolver"
environment:
REDIS_HOST: "redis"