name: oodikone x-defaults: &defaults restart: unless-stopped x-build_defaults: &build_defaults dockerfile: dev.Dockerfile x-user_defaults: &user_defaults # Run containers as user:group defined in .env # If run as $(id -u):$(id -g) will reduce permission errors when mounting # Defaults to registry.access.redhat.com/ubi10/nodejs-24-minimal's default user:group user: '${DOCKER_UID:-1001}:${DOCKER_GID:-0}' x-healthcheck-defaults: &healthcheck-defaults interval: 30s # Normal healthcehck interval timeout: 5s retries: 10 # Retries until SIGKILl start_interval: 3s # How often healthcheck runs while starting start_period: 30s # How long startup period is services: adminer: <<: *defaults container_name: oodikone-adminer environment: ADMINER_DESIGN: pepa-linha image: adminer:5.5.1 ports: - 5050:8080 volumes: - ./adminer-plugins:/var/www/html/plugins-enabled backend: <<: [*defaults, *user_defaults] container_name: oodikone-backend build: dockerfile: backend/dev.Dockerfile context: services depends_on: kone-db: condition: service_healthy redis: condition: service_healthy sis-db: condition: service_healthy user-db: condition: service_healthy env_file: - .env tty: true environment: DB_URL_KONE: postgres://postgres@kone-db:5432/kone-db DB_URL_USER: postgres://postgres@user-db:5432/user-db FRONT_URL: http://localhost:3000 REDIS: redis SECRET_TOKEN: dev SIS_DB_URL: postgres://postgres@sis-db:5432/sis-db SIS_UPDATER_URL: http://sis-updater-scheduler:8082 IMPORTER_DB_API_URL: 'https://api-toska.apps.ocp-prod-0.k8s.it.helsinki.fi/importer' JAMI_URL: 'http://jami:3003/' ports: - 8080:8080 profiles: - oodikone volumes: - ./services/backend/:/opt/app-root/backend - ./services/shared/:/opt/app-root/shared - shared-nodemod:/opt/app-root/shared/node_modules - backend-nodemod:/opt/app-root/backend/node_modules healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:8080/api/health'] <<: *healthcheck-defaults frontend: <<: [*defaults, *user_defaults] container_name: oodikone-frontend build: dockerfile: frontend/dev.Dockerfile context: services depends_on: backend: condition: service_healthy ports: - 3000:3000 profiles: - oodikone volumes: - ./services/frontend/:/opt/app-root/frontend - ./services/shared/:/opt/app-root/shared - shared-nodemod:/opt/app-root/shared/node_modules - frontend-nodemod:/opt/app-root/frontend/node_modules kone-db: <<: *defaults container_name: oodikone-kone-db image: registry-toska.ext.ocp-prod-0.k8s.it.helsinki.fi/kone-db profiles: - oodikone ports: - 4321:5432 volumes: - kone-db-data:/data healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-h', '127.0.0.1'] <<: *healthcheck-defaults user-db: <<: *defaults container_name: oodikone-user-db image: registry-toska.ext.ocp-prod-0.k8s.it.helsinki.fi/user-db profiles: - oodikone ports: - 4320:5432 volumes: - user-db-data:/data healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-h', '127.0.0.1'] <<: *healthcheck-defaults redis: <<: *defaults container_name: oodikone-redis command: 'redis-server --appendonly yes' image: redis:7.2.6 ports: - 6379:6379 volumes: - redis-data:/data healthcheck: test: ['CMD', 'redis-cli', 'ping', '|', 'grep', 'PONG'] <<: *healthcheck-defaults sis-db: <<: *defaults container_name: oodikone-sis-db image: registry-toska.ext.ocp-prod-0.k8s.it.helsinki.fi/sis-db volumes: - sis-db-data:/data shm_size: 2gb ports: - 12345:5432 healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-h', '127.0.0.1'] <<: *healthcheck-defaults sis-importer-db: <<: *defaults container_name: oodikone-sis-importer-db image: registry-toska.ext.ocp-prod-0.k8s.it.helsinki.fi/sis-importer-db profiles: - updater volumes: - sis-importer-db-data:/data ports: - 12346:5432 healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-h', '127.0.0.1'] <<: *healthcheck-defaults jami: <<: *defaults container_name: oodikone-jami image: quay.io/toska/jami:production depends_on: jami-db: condition: service_healthy env_file: - .env environment: - npm_config_cache=/tmp - PORT=3003 - NODE_ENV=development - DATABASE_URL=postgres://postgres:postgres@jami-db:5432/jami-db-real ports: - 3003:3003 jami-db: <<: *defaults container_name: oodikone-jami-db image: registry-toska.ext.ocp-prod-0.k8s.it.helsinki.fi/jami-db environment: - PGDATA=/data - POSTGRES_PASSWORD=postgres ports: - 5433:5432 volumes: - jami-data:/data healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres', '-h', '127.0.0.1'] <<: *healthcheck-defaults sis-updater-worker: <<: [*defaults, *user_defaults] container_name: oodikone-updater-worker build: <<: *build_defaults context: updater/sis-updater-worker depends_on: redis: condition: service_healthy sis-db: condition: service_healthy sis-importer-db: condition: service_healthy environment: DB_URL: postgres://postgres@sis-db:5432/sis-db REDIS_HOST: redis SIS_IMPORTER_DATABASE: sis-importer-db SIS_IMPORTER_HOST: sis-importer-db SIS_IMPORTER_PASSWORD: postgres SIS_IMPORTER_USER: postgres SIS_PASSWORD: postgres profiles: - updater volumes: - ./updater/sis-updater-worker/:/opt/app-root/src - sis-updater-worker-nodemod:/opt/app-root/src/node_modules sis-updater-scheduler: <<: [*defaults, *user_defaults] container_name: oodikone-updater-scheduler build: <<: *build_defaults context: updater/sis-updater-scheduler depends_on: redis: condition: service_healthy sis-importer-db: condition: service_healthy environment: REDIS_HOST: redis SECRET_TOKEN: dev SIS_IMPORTER_DATABASE: sis-importer-db SIS_IMPORTER_HOST: sis-importer-db SIS_IMPORTER_PASSWORD: postgres SIS_IMPORTER_USER: postgres SCHEDULE_IMMEDIATE: '${SCHEDULE_IMMEDIATE}' EXIT_AFTER_IMMEDIATES: '${EXIT_AFTER_IMMEDIATES}' ports: - 8082:8082 profiles: - updater volumes: - ./updater/sis-updater-scheduler/:/opt/app-root/src - sis-updater-scheduler-nodemod:/opt/app-root/src/node_modules healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:8082/health'] <<: *healthcheck-defaults volumes: backend-nodemod: name: oodikone-backend-nodemod frontend-nodemod: name: oodikone-frontend-nodemod shared-nodemod: name: oodikone-shared-nodemod kone-db-data: name: oodikone-kone-db-data redis-data: name: oodikone-redis-data sis-db-data: name: oodikone-sis-db-data sis-importer-db-data: name: oodikone-sis-importer-db-data sis-updater-scheduler-nodemod: name: oodikone-updater-scheduler-nodemod sis-updater-worker-nodemod: name: oodikone-updater-worker-nodemod user-db-data: name: oodikone-user-db-data jami-data: name: oodikone-jami-data