79 lines
2.8 KiB
YAML
79 lines
2.8 KiB
YAML
name: lmnp-dev
|
|
|
|
services:
|
|
mongodb:
|
|
image: mongo:8.0
|
|
restart: unless-stopped
|
|
ports:
|
|
- '${MONGO_PORT:-27017}:27017'
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
if [ ! -s /data/configdb/keyfile ]; then
|
|
umask 077
|
|
openssl rand -base64 756 > /data/configdb/keyfile
|
|
fi
|
|
chmod 400 /data/configdb/keyfile
|
|
exec docker-entrypoint.sh mongod --replSet rs0 --keyFile /data/configdb/keyfile --bind_ip_all
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USERNAME:-lmnp}
|
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD:?Set MONGO_ROOT_PASSWORD to a URL-safe value}
|
|
volumes:
|
|
- mongodb_data:/data/db
|
|
- mongodb_config:/data/configdb
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- >-
|
|
mongosh --quiet --host localhost
|
|
--username "$${MONGO_INITDB_ROOT_USERNAME}"
|
|
--password "$${MONGO_INITDB_ROOT_PASSWORD}"
|
|
--authenticationDatabase admin
|
|
--eval 'try { rs.status() } catch (error) { rs.initiate({_id: "rs0", members: [{_id: 0, host: "mongodb:27017"}]}) }; db.hello().isWritablePrimary'
|
|
| grep -q true
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 10
|
|
start_period: 20s
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
mem_limit: 1g
|
|
cpus: 2.0
|
|
ports:
|
|
- '${BACKEND_PORT:-8080}:8080'
|
|
environment:
|
|
SPRING_DATA_MONGODB_URI: mongodb://${MONGO_ROOT_USERNAME:-lmnp}:${MONGO_ROOT_PASSWORD:?Set MONGO_ROOT_PASSWORD to a URL-safe value}@mongodb:27017/lmnp?authSource=admin&replicaSet=rs0&directConnection=true
|
|
OIDC_ISSUER_URI: ${OIDC_ISSUER_URI:?Set OIDC_ISSUER_URI}
|
|
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:?Set OIDC_CLIENT_ID}
|
|
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:?Set OIDC_CLIENT_SECRET}
|
|
OIDC_ADMIN_ROLE: ${OIDC_ADMIN_ROLE:-admin}
|
|
LMNP_ATTACHMENT_STORAGE_PATH: /data/attachments
|
|
JAVA_TOOL_OPTIONS: -XX:MaxRAMPercentage=55
|
|
volumes:
|
|
- attachment_data:/data/attachments
|
|
- lease_document_data:/data/leases
|
|
depends_on:
|
|
mongodb:
|
|
condition: service_healthy
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
ports:
|
|
- '${FRONTEND_PORT:-8081}:80'
|
|
depends_on:
|
|
- backend
|
|
|
|
volumes:
|
|
mongodb_data:
|
|
mongodb_config:
|
|
attachment_data:
|
|
lease_document_data:
|