Ctrl K
ComunidadGuías…

docker-compose.e2e.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  app:
    # 拿掉基底的 GHCR 映像名:e2e 一律從原始碼 build,且產物維持叫 knotebook-e2e-app,不覆寫本機
    # ghcr.io/sw-willie-wu/knotebook:latest(同一台機器上另一個 compose 專案用的是那個標籤)。
    image: !reset null
    env_file: !override []
    environment:
      DATABASE_URL: postgres://knotebook:knotebook@db:5432/knotebook
      APP_SECRET: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      PUBLIC_URL: http://localhost:3100
      ADMIN_EMAIL: admin@e2e.local
      ADMIN_PASSWORD: e2e-admin-password
      KNOTEBOOK_E2E_TEST_HOOKS: "1" # #272:自動存版等待可壓成秒(PUBLIC_URL 是 localhost 才生效;只給 e2e 疊)
    ports: !override
      - "127.0.0.1:3100:3000"
  db:
    scale: 1 # 同理顯式釘死:基底的 ${BUNDLED_DB:-1} 也讀 .env/shell——誰設了 BUNDLED_DB=0,e2e 疊就沒有 db
    environment:
      POSTGRES_PASSWORD: knotebook # 顯式釘死:基底的 ${POSTGRES_PASSWORD:-knotebook} 插值會讀 .env/shell——
                                    # 誰設過該變數,db 就用新密碼初始化而 app 連舊密碼
  fake-idp:
    build: { context: ./e2e, dockerfile: Dockerfile.stub }
    command: ["node", "stubs/fake-idp.mjs"]
    ports:
      - "127.0.0.1:9400:9400" # 瀏覽器經 host-resolver-rules 打進來;control endpoint 也走這
  ai-stub:
    build: { context: ./e2e, dockerfile: Dockerfile.stub }
    command: ["node", "stubs/ai-stub.mjs"]
    # 只有 app 容器需要打它,不發布 host port