【问题标题】:Google Cloud Run: COPY fails when changing source folder from ./ to buildGoogle Cloud Run:将源文件夹从 ./ 更改为 build 时复制失败
【发布时间】:2020-05-18 03:16:03
【问题描述】:
$ gcloud builds submit --tag gcr.io/projectname/testserver
// ... works fine until the COPY step:

Step 6/7 : COPY build ./
COPY failed: stat /var/lib/docker/tmp/docker-builder653325957/build: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1

上面列出的构建文件夹/var/lib/docker/tmp/docker-builder653325957/build 不是本地文件夹。 Cloud Builder 是否以该格式创建临时文件夹?

如何让它复制我本地的build 文件夹?

我也试过COPY ./build ./,但 CLI 输出是一样的

Dockerfile 下面。

FROM node:12-slim

# Create app folder
WORKDIR /usr/src/app

# Install app deps. Copy the lock file
COPY package*.json ./
RUN npm install

ENV SCOPES=removed \
    SHOPIFY_API_KEY=removed \
    SHOPIFY_API_SECRET=removed \
    CLIENT_APP_URL=removed

COPY build ./
CMD ["node", "server.js"]


【问题讨论】:

  • 您的.gcloudignore.gitignore 文件中是否列出了build 目录?
  • @DustinIngram 我还没有设置.gcloudignore。是的,/build 列在.gitignore 中(包括前面的/

标签: google-cloud-platform google-cloud-run


【解决方案1】:

gcloud 命令使用 .gitignore.gcloudignore 文件来确定要包含在 Docker 构建中的文件和目录。如果您的 build 目录列在这些文件中,则无法将其复制到您的容器映像中。

【讨论】:

  • 为什么会这样呢?我想从我的 git 中排除构建文件,但将它们从一个容器移动到另一个容器
  • 默认情况下,您的.gcloudignore 可能递归地包含您的.gitignore 文件。如果您希望它们表现不同,则可以删除 .gcloudignore 中包含 .gitignore 的行。
  • 我实际上完全忽略了这个问题,在我的本地机器上构建并将该图像推送到 gcloud
猜你喜欢
  • 2022-10-02
  • 2022-01-14
  • 1970-01-01
  • 2020-09-14
  • 2021-04-25
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 2020-12-31
相关资源
最近更新 更多