version: '3.4' services: oc-catalog: environment: - MONGO_DATABASE=DC_myDC # Chemin du fichier JSON contenant la table opaque_key → real_path. # Écrit par oc-catalog, lu par oc-datacenter via le volume partagé. - SOURCE_KEY_STORE_PATH=/data/source-keys.json image: 'oc-catalog:latest' ports: - 8087:8080 volumes: # Volume partagé avec oc-datacenter. # oc-catalog écrit, oc-datacenter lit. # Ne jamais supprimer — même exigence de conservation que la base de données. - oc-source-keys:/data container_name: oc-catalog networks: - oc labels: - "traefik.stack=peer1" - "traefik.enable=true" - "traefik.http.routers.catalog.entrypoints=web" - "traefik.http.routers.catalog.rule=PathPrefix(`/catalog`)" - "traefik.http.middlewares.catalog-rewrite.replacepathregex.regex=^/catalog(.*)" - "traefik.http.middlewares.catalog-rewrite.replacepathregex.replacement=/oc$$1" - "traefik.http.routers.catalog.middlewares=catalog-rewrite,auth-catalog" - "traefik.http.services.catalog.loadbalancer.server.port=8080" - "traefik.http.middlewares.auth-catalog.forwardauth.address=http://oc-auth:8080/oc/forward" - "traefik.http.middlewares.auth-catalog.forwardauth.trustForwardHeader=true" - "traefik.http.middlewares.auth-catalog.forwardauth.authResponseHeaders=X-Auth-Request-User,X-Auth-Request-Email" volumes: # Volume nommé Docker partagé avec oc-datacenter. # Contient source-keys.json — table privée des clés sources opaques. # Déclarer external: true dans le compose oc-datacenter pour référencer ce même volume. oc-source-keys: networks: oc: external: true