首页 > 解决方案 > Docker 与 Docker-compose 与 dockerignore

问题描述

docker 和 docker-compose 在处理 .dockerignore 方面是否应该有所不同?

我有一个 Docker 容器,当我直接构建它时它构建得很好,例如 via docker build -t mycontainer ./mycontainer,但是当我构建它时它失败了docker-compose up。的相关部分docker-compose.yml

version: '3'
services:
  mycontainer:
    build: ./mycontainer
  ports:
    - "1234:1234"
  expose:
    - "1234"

通过使用docker run --rm -it --entrypoint=/bin/bash 240e1a06c8f5, where 240e1a06c8f5is the last image before build failure, 我发现其中一个文件 ,./mycontainer/mymodel/labels.rdata不是被 复制的docker-compose up,而是被 复制的docker build。它也接近于.dockerignore,中的一个模式*/*.RData

.dockerignore这是docker-compose 和 docker build之间区分大小写的区别吗?路径处理有区别吗?这是一个已知的错误?(或有意?)MacO 上的版本:

$ docker --version
Docker version 18.09.1, build 4c52b90
$ docker-compose --version
docker-compose version 1.23.2, build 1110ad01

标签: dockerdocker-compose

解决方案


我刚刚尝试在 Windows 上使用不区分大小写的.dockerignore条目,它实际上忽略了该文件,所以看起来您*/*.RData实际上会忽略您的./mycontainer/mymodel/labels.rdata文件。

尝试更改文件的扩展名或更改忽略条目。我会更改文件名,因为这似乎是一次性的。

编辑:这听起来像一个错误。我会在他们的Github 问题页面上提交一份,因为我还没有看到一份


推荐阅读