【问题标题】:Dockerfile COPY does not work with cloud-buildDockerfile COPY 不适用于 cloud-build
【发布时间】:2019-12-10 01:50:44
【问题描述】:

我可以在本地使用 COPY 构建 Docker 映像,但它不适用于 cloud-build。我的目录结构如下:

Dockerfile.dev
.dockerignore
cloudbuild.yaml
script/
  - main.py
  - requirements.txt
  - entrypoint.sh 

Dockerfile.dev 包含以下命令:

WORKDIR /opt/app
COPY ["script/", "./"]
RUN pip install --no-cache -r requirements.txt

我可以通过运行在本地构建它

docker build -f Dockerfile.dev .

我的 cloudbuild.yaml 看起来像这样:

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/project/my_image', '-f', 'Dockerfile.dev', '.']
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'gcr.io/project/my_image']

images: ['gcr.io/project/my_image']

每次我运行 cloud-build 时都会收到一个错误,即 requirements.txt 不存在,就好像它没有被复制一样。有什么解决办法吗?

【问题讨论】:

    标签: docker dockerfile google-cloud-build


    【解决方案1】:

    您的代码:

    WORKDIR /opt/app
    COPY ["script/", "./"]
    

    希望将本地目录script中的所有文件复制到容器目录/opt/app中。

    我认为问题源于源定义为script/。我找不到以/ 结尾的源的任何语义。我发现的是:

    如果<src>是目录,则目录的全部内容为 复制,包括文件系统元数据。

    我的建议是测试:

    WORKDIR /opt/app
    COPY ["script", "./"]
    

    看看会不会有什么不同。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-12
      • 2022-01-06
      • 2022-01-27
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      相关资源
      最近更新 更多