首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker-组合:“始终接收”无法找到指定的Dockerfile

Docker-组合:“始终接收”无法找到指定的Dockerfile
EN

Stack Overflow用户
提问于 2016-12-22 15:30:11
回答 2查看 1K关注 0票数 2

我有以下项目结构:

代码语言:javascript
运行
复制
WebApp
  -- docker-compose.yml
  -- Dockerfile
  -- docker
     -- docker-gc
        --Dockerfile

docker/docker-gc是我在使用以下命令之前创建的一个git子模块:

代码语言:javascript
运行
复制
 git submodule add git@github.com:spotify/docker-gc.git docker/docker-gc

在Dockerfile中,我尝试在docker-gc中运行Dockerfile。这是我的服务:

代码语言:javascript
运行
复制
gc:
  container_name: docker-gc
  build: ./docker/docker-gc
  dockerfile: ./docker/docker-gc/Dockerfile
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /etc:/etc

但我总是收到错误:

无法找到指定的Dockerfile ./docker/docker-gc/Dockerfile

我尝试过许多方法,如docker/docker-gc/Dockerfile/docker/docker-gc/Dockerfile,但没有结果。这个问题是否与符号链接有关(由于git子模块性质)。请告诉我怎么解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 18:55:03

错误出现在您的docker-compose.yaml文件中。在该格式的版本1中,可以同时指定builddockerfile。如果两者都提供,则dockerfile属性表示希望在build指定的目录中找到的文件名。

在您的示例中,将dockerfile属性更改为只包含文件名,而不是与build中相同的路径

代码语言:javascript
运行
复制
gc:
  container_name: docker-gc
  build: ./docker/docker-gc
  dockerfile: Dockerfile
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /etc:/etc

由于Dockerfile是默认名称,所以您也可以简单地删除这一行:

代码语言:javascript
运行
复制
gc:
  container_name: docker-gc
  build: ./docker/docker-gc
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /etc:/etc

有关更多信息,请参考码头人员撰写文件

还请注意,的版本2使用了build参数的不同概念。

票数 4
EN

Stack Overflow用户

发布于 2016-12-22 15:47:51

最后,尝试在没有Dockerfile的情况下完成它。默认情况下,它应该在指定的文件夹中使用名为"Dockerfile“的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41286589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档