【问题标题】:Oci runtime error docker-compose not a directoryOci 运行时错误 docker-compose 不是目录
【发布时间】:2018-11-16 12:34:39
【问题描述】:

我是 docker 新手,目前正在努力解决以下问题:

在docker终端启动命令后:

OAUTH_CLIENT_ID=<...> OAUTH_CLIENT_SECRET=<...>      
OAUTH_URL_CALLBACK=http://192.168.99.100/api/v1/auth/login docker-compose --
file test/docker-compose.yml up

我收到以下错误消息:

ERROR: for platform  Cannot start service platform: invalid header field 
value "oci runtime error: container_linux.go:247: starting container process 
caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:53:  
mounting \\\\\\\"/c/users/m_konk01/documents/GitHub/o2r-
platform/test/nginx.conf\\\\\\\" to rootfs 
\\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/29c14c514916cf09070c6dd084bee55fa899d9
79b3f7b9521f1ab25e3a8232a0\\\\\\\" at 
\\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/29c14c514916cf09070c6dd084bee55fa899d9
 79b3f7b9521f1ab25e3a8232a0/etc/nginx/nginx.conf\\\\\\\" caused \\\\\\\"not 
a directory\\\\\\\"\\\"\"\n" [31mERROR[0m: Encountered errors while bringing up the project.

docker-compose.yml 启动多个 docker 容器并包含以下平台设置:

platform:
image: nginx:latest
depends_on:
  - container1
  - container2
  - container3
  - container4
volumes:
  - "./nginx.conf:/etc/nginx/nginx.conf:ro"
  - "../client:/etc/nginx/html"
ports:
  - "80:80"

Docker 版本

$ docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      linux/amd64

很高兴有任何想法。到目前为止我的搜索没有成功。

【问题讨论】:

    标签: nginx docker docker-compose


    【解决方案1】:

    您似乎想将文件挂载到文件中。我记得在你的 docker-version 上它是不允许的。你必须将你的 nginx.conf 移动到你的 Dockerfile 中

    Dockerfile:

    ....
    ADD         nginx.conf  /tmp/
    
    RUN         mv /tmp/nginx.conf /etc/nginx/nginx.conf && \
    
    ....
    

    这应该适合你。如果不告诉我你的下一个错误代码

    【讨论】:

    • 我不认为问题出在 docker 文件中。我使用 docker-compose.yml 进行本地安装,而不是 docker 文件(请参阅我最初帖子中的 sn-p)。我必须添加并移动它吗?
    • 我建议您在 dockerfile 中执行此操作,因为 docker-compose 遇到了一些问题。
    【解决方案2】:

    由于卷挂载工作不正常,我遇到了类似的问题。 因此 docker 默认行为将此 /nginx.conf 视为目录并给出此错误。

    要确认这一点,您可以 ssh 进入您的映像并转到共享目录并检查文件是否存在。

    例如:docker exec -it nginx sh 并转到/etc/nginx/html,您将看不到本地文件。然后您可以确认卷共享不起作用。你需要解决这个问题。

    如果您使用的是 Windows 10 (hyper-v),首先您需要共享您的驱动器并检查。

    但是,您需要先找到解决方案来堆积您的共享目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2021-06-03
      • 2021-08-27
      • 2020-04-19
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多