如何将 nginx.conf 挂载到 Docker Jenkins 中的容器?

How to mount nginx.conf to container in Docker Jenkins?

我的 Nginx 在 docker-compose.yml:

...
nginx:
  image: nginx:1.19.2-alpine
  restart: always
  hostname: nginx
  ports:
    - "9000:9000"
    - "9001:9001"
  depends_on:
    - minio
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
  container_name: nginx
...

我在终端中使用 docker compose up -d,它工作正常。

但是,当我在 Jenkins 容器中使用 docker compose up -d 时,它无法创建 Nginx 容器并出现此错误:

ERROR: for nginx  Cannot start service nginx: failed to create shim: OCI runtime create failed:
container_linux.go:380: starting container process caused: process_linux.go:545: 
container init caused: rootfs_linux.go:75: mounting 
"/var/jenkins_home/workspace/workspace/nginx.conf" to rootfs at "/etc/nginx/nginx.conf" caused: 
mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file 
(or vice-versa)? Check if the specified host path exists and is the expected type

错误是否意味着 Docker 想要将文件装载到 Jenkins 的卷中,所以没有 nginx.conf 可以装载?

如何将我的 nginx.conf 挂载到我的 Nginx 容器?

提前致谢。

看起来您正在从相对路径 ./nginx.conf 等位置执行 docker-compose up 不正确。

当 docker-compose 找不到要安装的源 bind-volume 时,此错误很典型。

确保您在正确的 docker-compose 上下文中或尝试使用绝对路径而不是 ./nginx.conf