我有一个docker-compose.yaml
,它启动快速服务器,并postgres database在单独的容器中。 postgres容器将卷映射到db
文件夹,该文件夹包含数据库种子脚本。在本地,docker-compose运行良好,我可以对联网容器执行集成测试。但是,在Jenkins上运行时,相同的脚本会失败,并显示以下错误:
错误:对于数据库,无法启动服务数据库:创建安装时出错 源路径 '/ 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
我在several places中读到,卷需要绝对路径(不是相对路径),但是我尝试将/var/jenkins_home/workspace/project_name/db
编码到卷配置的左侧无济于事。