-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose-prod.yml
111 lines (106 loc) · 3.33 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
105
106
107
108
109
110
111
services:
traefik:
image: traefik:v2.3
container_name: traefik
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
- /var/run/docker.sock:/var/run/docker.sock:ro
fuseki:
image: semapps/jena-fuseki-webacl
container_name: fuseki
volumes:
- ./data/fuseki:/fuseki
ports:
- "3030:3030"
expose:
- "3030"
environment:
ADMIN_PASSWORD: ${FUSEKI_PASSWORD}
app-frontend:
build:
context: .
dockerfile: ./docker/frontend.dockerfile
args:
REACT_APP_NAME: $APP_NAME
REACT_APP_DESCRIPTION: $APP_DESCRIPTION
REACT_APP_LANG: $APP_LANG
REACT_APP_ORGANIZATION_NAME: $ORGANIZATION_NAME
REACT_APP_ORGANIZATION_URL: $ORGANIZATION_URL
REACT_APP_BACKEND_URL: https://${DOMAIN_NAME}${BACKEND_PATH}
REACT_APP_BACKEND_CLIENT_ID: https://${DOMAIN_NAME}${BACKEND_PATH}/app
REACT_APP_POD_PROVIDER_BASE_URL: $POD_PROVIDER_BASE_URL
REACT_APP_MAPBOX_ACCESS_TOKEN: $MAPBOX_ACCESS_TOKEN
PORT: 4000
image: $FRONTEND_DOCKER_IMAGE
container_name: frontend
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
container_name: backend
depends_on:
- fuseki
- redis
volumes:
- ./data/backend/logs:/app/backend/logs
- ./data/backend/jwt:/app/backend/jwt
- ./data/backend/uploads:/app/backend/uploads
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
container_name: redis
expose:
- "6379"
volumes:
- ./data/redis:/data:z
command: [ "redis-server", "--appendonly", "yes" ]
arena:
image: activitypods/arena
container_name: arena
restart: always
volumes:
- ./docker/arena-prod.json:/opt/arena/src/server/config/index.json
depends_on:
- redis
ports:
- "4567:4567"
expose:
- "4567"
environment:
REDIS_HOST: "redis"