У меня есть 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
в левой части конфигурации тома, но безрезультатно.