Как отобразить объем из рабочей области Jenkins в контейнер Docker с помощью docker-compose - PullRequest
0 голосов
/ 28 января 2019

У меня есть docker-compose.yaml, который раскручивает экспресс-сервер, и база данных postgres в отдельных контейнерах.Контейнер postgres отображает том в папку db, которая содержит сценарии заполнения базы данных.Локально, docker-compose работает нормально, и я могу выполнить интеграционные тесты для сетевых контейнеров.Однако те же сценарии завершаются ошибкой при запуске в Jenkins со следующей ошибкой:

ОШИБКА: для БД Невозможно запустить службу db: ошибка при создании исходного пути монтирования '/ var / jenkins_home / workspace / project_name /db ': mkdir / var / jenkins_home: файловая система только для чтения

docker-compose.yaml

...

db:
    image: postgres:10.5
    restart: always
    networks:
      - cloud
    environment:
      POSTGRES_USER: someuser
      POSTGRES_PASSWORD: somepassword
      POSTGRES_DB: somedb
    ports:
      - 5432:5432
    volumes:
      - ./db:/docker-entrypoint-initdb.d
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U someuser -d somedb"]
      interval: 10s
      timeout: 5s
      retries: 5

Я прочитал в несколько мест , что для томов требуются абсолютные пути (не относительные), но я попытался кодировать /var/jenkins_home/workspace/project_name/db в левой части конфигурации тома, но безрезультатно.

...