注意:在这个问题上有一个类似的帖子,但是它涉及一个CI/CD工作流和一个相当复杂的Dockerfile。提出的解决办法似乎不适用于我的情况。
根据Google文档,我试图通过在我的Dockerfile中提到的文件所在的目录中运行gcloud run deploy
来构建一个映像。Dockerfile显示为:
FROM python:3.9-alpine
WORKDIR /app
COPY main.py /app/main.py
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt
CMD ["python3", "main.py"]
我收到一条消息,表示构建失败,在检查日志时,我看到以下内容:
starting build "..."
FETCHSOURCE
Fetching storage object: gs://my-app_cloudbuild/source/....
Copying gs://my-app_cloudbuild/source/...
/ [0 files][ 0.0 B/ 1.5 KiB]
/ [1 files][ 1.5 KiB/ 1.5 KiB]
Operation completed over 1 objects/1.5 KiB.
BUILD
Already have image (with digest): gcr.io/cloud-builders/docker
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /workspace/Dockerfile: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
有人能解释一下这个错误的原因吗?我怀疑这与文件如何被复制到映像有关,但是我能够在本地机器上构建和运行这个容器,没有问题。知道为什么在云运行构建中失败吗?
在运行ls -la
的目录中运行gcloud run deploy
返回:
drwxr-xr-x 9 user staff 288 May 20 16:04 .
drwxr-xr-x 6 user staff 192 May 20 13:35 ..
drwxr-xr-x 14 user staff 448 May 20 16:06 .git
-rw-r--r-- 1 user staff 27 May 20 15:06 .gitignore
-rw-r--r-- 1 user staff 424 May 20 16:54 Dockerfile
-rw-r--r-- 1 user staff 3041 May 20 15:55 main.py
-rw-r--r-- 1 user staff 144 May 19 09:42 requirements.txt
drwxr-xr-x 6 user staff 192 May 19 09:09 venv
.gitignore
含量
Dockerfile
venv
*.gz
*.tar
*.pem
在尝试两步构建时,完全控制台输出(请参阅注释):
user@users-MacBook-Pro TwitterBotAQI % gcloud builds submit --tag gcr.io/missoula-aqi/aqi
Creating temporary tarball archive of 2 file(s) totalling 3.1 KiB before compression.
Some files were not included in the source upload.
Check the gcloud log [/Users/user/.config/gcloud/logs/2022.05.20/18.40.53.921436.log] to see which files and the contents of the
default gcloudignore file used (see `$ gcloud topic gcloudignore` to learn
more).
Uploading tarball of [.] to [gs://missoula-aqi_cloudbuild/source/1653093653.998995-48d4ba15b3274455a21e16b7abc7d65b.tgz]
Created [https://cloudbuild.googleapis.com/v1/projects/missoula-aqi/locations/global/builds/0c22d976-171e-4e7b-92d8-ec91704d6d52].
Logs are available at [https://console.cloud.google.com/cloud-build/builds/0c22d976-171e-4e7b-92d8-ec91704d6d52?project=468471228522].
------------------------------------------------------------------------------------ REMOTE BUILD OUTPUT -------------------------------------------------------------------------------------
starting build "0c22d976-171e-4e7b-92d8-ec91704d6d52"
FETCHSOURCE
Fetching storage object: gs://missoula-aqi_cloudbuild/source/1653093653.998995-48d4ba15b3274455a21e16b7abc7d65b.tgz#1653093655000531
Copying gs://missoula-aqi_cloudbuild/source/1653093653.998995-48d4ba15b3274455a21e16b7abc7d65b.tgz#1653093655000531...
/ [1 files][ 1.5 KiB/ 1.5 KiB]
Operation completed over 1 objects/1.5 KiB.
BUILD
Already have image (with digest): gcr.io/cloud-builders/docker
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /workspace/Dockerfile: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BUILD FAILURE: Build step failure: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
ERROR: (gcloud.builds.submit) build 0c22d976-171e-4e7b-92d8-ec91704d6d52 completed with status "FAILURE"
发布于 2022-05-23 22:02:41
我将Dockerfile
添加到.gitignore
中,因为它包含作为环境变量存储的API键。从Dockerfile
中删除.gitignore
解决了这个问题。
https://stackoverflow.com/questions/72325410
复制相似问题