为什么我的 java docker 图片在笔记本电脑上创建成功,但在上传到 google 云端 运行 时却失败了?
Why is my java docker image created successfully on laptop but when uploading to google cloud run it fails?
码头文件:
FROM maven as builder
# Set the working directory.
WORKDIR /usr/src/mymaven
COPY ./ /usr/src/mymaven
CMD [ "maven:3.3-jdk-8" , "mvn" , "clean" , "install" ]
FROM openjdk:8
COPY --from=builder /usr/src/mymaven/target /usr/src/myapp
WORKDIR /usr/src/myapp
CMD ["java", "-jar" , "Build-Backend-0.0.1-SNAPSHOT.jar"]
在本地构建成功使用命令:
docker build -t javaservice .
但是当尝试使用命令将图像上传到 google 云 运行 时:
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/javaservice
它给出错误:
Step 6/8 : COPY --from=builder /usr/src/mymaven/target /usr/src/myapp
COPY failed: stat /var/lib/docker/overlay2/201005fffe25fce26b6ef6067586ae02dd20a0ad7d63b846d5ee6260d833d52d/merged/usr/src/mymaven/target: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
这里可能有什么问题?
找不到答案,所以发布我自己找到的解决方案。
如果您可以在本地机器上构建 docker 镜像,但 google 云 运行 由于任何原因失败,您可以将本地制作的镜像直接推送到 google 容器注册表。
gcloud auth configure-docker #integrate gcloud to docker
docker build . --tag gcr.io/[PROJECT-ID]/[IMAGENAME]
docker push gcr.io/[PROJECT-ID]/[IMAGENAME]
您本地目录中的 target
目录似乎被 .gitignore
或 .gcloudignore
忽略,因此没有被发送到 Cloud Build。
码头文件:
FROM maven as builder
# Set the working directory.
WORKDIR /usr/src/mymaven
COPY ./ /usr/src/mymaven
CMD [ "maven:3.3-jdk-8" , "mvn" , "clean" , "install" ]
FROM openjdk:8
COPY --from=builder /usr/src/mymaven/target /usr/src/myapp
WORKDIR /usr/src/myapp
CMD ["java", "-jar" , "Build-Backend-0.0.1-SNAPSHOT.jar"]
在本地构建成功使用命令:
docker build -t javaservice .
但是当尝试使用命令将图像上传到 google 云 运行 时:
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/javaservice
它给出错误:
Step 6/8 : COPY --from=builder /usr/src/mymaven/target /usr/src/myapp
COPY failed: stat /var/lib/docker/overlay2/201005fffe25fce26b6ef6067586ae02dd20a0ad7d63b846d5ee6260d833d52d/merged/usr/src/mymaven/target: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
这里可能有什么问题?
找不到答案,所以发布我自己找到的解决方案。
如果您可以在本地机器上构建 docker 镜像,但 google 云 运行 由于任何原因失败,您可以将本地制作的镜像直接推送到 google 容器注册表。
gcloud auth configure-docker #integrate gcloud to docker
docker build . --tag gcr.io/[PROJECT-ID]/[IMAGENAME]
docker push gcr.io/[PROJECT-ID]/[IMAGENAME]
您本地目录中的 target
目录似乎被 .gitignore
或 .gcloudignore
忽略,因此没有被发送到 Cloud Build。