2 Commits

Author SHA1 Message Date
Abdullah Atta
e3f97bc47e docker: use named volumes instead of creating folders in $HOME 2024-10-12 13:39:57 +05:00
Abdullah Atta
9482e1ddc1 docker: add health checks for mongodb and minio 2024-10-12 13:18:12 +05:00

View File

@@ -6,6 +6,8 @@ x-server-discovery: &server-discovery
SSE_SERVER_PORT: 7264
SSE_SERVER_HOST: sse-server
SELF_HOSTED: 1
IDENTITY_SERVER_URL: ${AUTH_SERVER_PUBLIC_URL}
NOTESNOOK_APP_HOST: ${NOTESNOOK_APP_PUBLIC_URL}
x-env-files: &env-files
- .env
@@ -49,14 +51,20 @@ services:
image: mongo:7.0.12
hostname: notesnook-db
volumes:
- ${HOME}/.notesnook/db/data:/data/db
- ${HOME}/.notesnook/db/configdb:/data/configdb
- dbdata:/data/db
- dbdata:/data/configdb
networks:
- notesnook
command: --replSet rs0 --bind_ip_all
depends_on:
validate:
condition: service_completed_successfully
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh mongodb://localhost:27017 --quiet
interval: 40s
timeout: 30s
retries: 3
start_period: 60s
# the notesnook sync server requires transactions which only work
# with a MongoDB replica set.
# This job just runs `rs.initiate()` on our mongodb instance
@@ -84,7 +92,7 @@ services:
networks:
- notesnook
volumes:
- ${HOME}/.notesnook/s3:/data/s3
- s3data:/data/s3
environment:
MINIO_BROWSER: "on"
depends_on:
@@ -92,6 +100,12 @@ services:
condition: service_completed_successfully
env_file: *env-files
command: server /data/s3 --console-address :9090
healthcheck:
test: timeout 5s bash -c ':> /dev/tcp/127.0.0.1/9000' || exit 1
interval: 40s
timeout: 30s
retries: 3
start_period: 60s
# There's no way to specify a default bucket in Minio so we have to
# set it up ourselves.
@@ -130,8 +144,6 @@ services:
<<: *server-discovery
MONGODB_CONNECTION_STRING: mongodb://notesnook-db:27017/identity?replSet=rs0
MONGODB_DATABASE_NAME: identity
IDENTITY_SERVER_URL: ${AUTH_SERVER_PUBLIC_URL}
NOTESNOOK_APP_HOST: ${NOTESNOOK_APP_PUBLIC_URL}
notesnook-server:
image: streetwriters/notesnook-sync:latest
@@ -216,3 +228,7 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
networks:
notesnook:
volumes:
dbdata:
s3data: