gpt4 book ai didi

dockerfile - 云构建无法找到 DockerFile

转载 作者:行者123 更新时间:2023-12-05 05:10:29 31 4
gpt4 key购买 nike

我正在尝试使用谷歌云构建触发器来构建我的 docker 容器。不幸的是,构建没有找到我的 docker 文件。它不在我的存储库的根目录中,但我认为我可以指定一个相对路径。显然我配置错误了。下面是我的 cloudbuild.yaml 和输出日志。

如果这很重要 - 我的代码在 github 中,但我配置了触发器以从该 repo 中提取。

steps:
- name: 'gcr.io/cloud-builders/docker'
args:
- 'build'
- '--tag=gcr.io/$PROJECT_ID/domain-session-test:$TAG_NAME'
- '--file=session_server/deployments/DockerFiles/minimal.Dockerfile'
- '.'
- name: 'gcr.io/cloud-builders/docker'
args: ['run', 'gcr.io/$PROJECT_ID/domain-session-test:$TAG_NAME', 'go', 'test']
- name: 'gcr.io/cloud-builders/gsutil'
args: ['cp', '-r', 'k8s/*', 'gs://$PROJECT_ID-kubernetes-manifests']
images: ['gcr.io/$PROJECT_ID/domain-session-test:$TAG_NAME']

日志:

starting build "1c4ee154-2c29-4e81-b884-d64c54841d71"    
FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/MYURL
* branch c2d8260a49d9972d1b0882c1676184be35b4c33c -> FETCH_HEAD
HEAD is now at c2d8260 triggering a build
BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/docker
Step #0: unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /workspace/Dockerfile: no such file or directory
Finished Step #0
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1

最佳答案

我在为 Docker 上下文使用 . 时遇到了类似的问题。

我遇到了这个错误...

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /workspace/Dockerfile: no such file or directory

...当使用类似于此的 cloudbuild.yaml 时:

steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/[PROJECT_ID]/[IMAGE]', '.']
# Push the image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/[PROJECT_ID]/[IMAGE]']
# Deploy image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args:
- 'run'
- 'deploy'
- '[SERVICE_NAME]'
- '--image'
- 'gcr.io/[PROJECT_ID]/[IMAGE]'
- '--region'
- '[REGION]'
- '--platform'
- 'managed'
images:
- gcr.io/[PROJECT_ID]/[IMAGE]

问题是我的 cloudbuild.yaml 假定工作目录与包含 cloudbuild.yaml 和 Dockerfile 的目录相同。

虽然我的 Cloud Build Trigger 定义知道在哪里可以找到 cloudbuild.yaml 文件,但它显然使用位于存储库根目录中的工作目录执行该文件,而存储库的根目录不包含 Dockerfile。


如果我使用类似于下面的构建步骤,问题就解决了。

# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/[PROJECT_ID]/[IMAGE]', '<DIR_CONTAINING_DOCKERFILE>']

关于dockerfile - 云构建无法找到 DockerFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605865/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com