-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
79 lines (76 loc) · 2.2 KB
/
docker-compose.yml
File metadata and controls
79 lines (76 loc) · 2.2 KB
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
services:
# ---------- Certificate checker ----------
cert-checker:
image: alpine
user: ${CONTAINER_USER:-nobody}
container_name: pastepoint-cert-checker
entrypoint: |
sh -c '
if [ ! -f /etc/ssl/pastepoint/cert.pem ] || [ ! -f /etc/ssl/pastepoint/key.pem ]; then
echo "ERROR: Missing SSL certificates!"
echo "Please create ${CERT_PATH:-/etc/ssl/pastepoint} directory with cert.pem and key.pem files"
echo "Use generate-certs.sh script to generate self-signed certificates for development or provide your own for production."
echo "Exiting..."
exit 1
fi
echo "Certificates exist, continuing..."
'
volumes:
- ${CERT_PATH:-/etc/ssl/pastepoint}:/etc/ssl/pastepoint:ro
restart: 'no'
# ---------- Server container ----------
server:
build:
context: .
dockerfile: server/Dockerfile
args:
RUST_BUILD_MODE: ${RUST_BUILD_MODE:-release}
container_name: pastepoint-server
ports:
- '9000:9000'
environment:
- RUN_ENV=${SERVER_ENV:-production}
volumes:
- ${CERT_PATH:-/etc/ssl/pastepoint}:/etc/ssl/pastepoint:ro
depends_on:
cert-checker:
condition: service_completed_successfully
restart: always
# ---------- Angular SSR container ----------
ssr:
build:
context: .
dockerfile: client/Dockerfile
target: ssr
args:
NPM_BUILD_CONFIG: ${NPM_BUILD_CONFIG:-docker}
container_name: pastepoint-ssr
environment:
PORT: ${PORT:-4000}
HOST: ${HOST:-0.0.0.0}
expose:
- '4000'
depends_on:
server:
condition: service_started
restart: always
# ---------- NGINX container ----------
nginx:
build:
context: .
dockerfile: client/Dockerfile
target: nginx
container_name: pastepoint-nginx
environment:
SERVER_NAME: ${SERVER_NAME:-pastepoint.com}
SSL_CERT_PATH: /etc/ssl/pastepoint/cert.pem
SSL_CERT_KEY_PATH: /etc/ssl/pastepoint/key.pem
ports:
- '80:80'
- '443:443'
volumes:
- ${CERT_PATH:-/etc/ssl/pastepoint}:/etc/ssl/pastepoint:ro
depends_on:
ssr:
condition: service_healthy
restart: always