-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose-prod.yml
104 lines (99 loc) · 3.08 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
104
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
restart: unless-stopped
volumes:
- ./data/fuseki:/fuseki:z
ports:
- '3030:3030'
expose:
- '3030'
environment:
ADMIN_PASSWORD: ${FUSEKI_PASSWORD}
app-frontend:
build:
context: .
dockerfile: ./docker/frontend.dockerfile
image: $FRONTEND_DOCKER_IMAGE
restart: unless-stopped
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'
env_file:
- ./frontend/.env
- ./frontend/.env.production
- path: ./frontend/.env.production.local
required: false
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
restart: unless-stopped
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'