为了账号安全,请及时绑定邮箱和手机立即绑定

Docker:无法计算缓存键

Docker:无法计算缓存键

Go
白衣非少年 2022-11-28 17:04:59
我正在尝试为我的 sample-go 应用程序构建一个 docker 镜像。我从 sample-app 文件夹本身运行它并使用 goland 编辑器的终端。但是构建失败并给了我某些错误。我的 docker 文件如下所示:FROM alpine:latestRUN mkdir -p /src/buildWORKDIR /src/buildRUN apk add --no-cache tzdata ca-certificatesCOPY ./configs /configsCOPY main /mainEXPOSE 8000CMD ["/main"]建造命令:docker build --no-cache --progress=plain  - < Dockerfile错误和日志:#1 [internal] load build definition from Dockerfile#1 sha256:8bb9ee83603259cf748d90ce42602f12527fa720d7417da22799b2ad4e503497#1 transferring dockerfile: 222B done#1 DONE 0.0s#2 [internal] load .dockerignore#2 sha256:f93d938488588cd0e0a94d9d343fe69dcfd28d0cb1da95ad7aab00aac50235c3#2 transferring context: 2B done#2 DONE 0.0s#3 [internal] load metadata for docker.io/library/alpine:latest#3 sha256:13549c58a76bcb5dac9d52bc368a8fb6b5cf7659f94e3fa6294917b85546978d#3 DONE 0.0s#10 [1/6] FROM docker.io/library/alpine:latest#10 sha256:d20daa00e252bfb345a1b4f53b6bb332aafe702d8de5e583a76fcd09ba7ea1c1#10 CACHED#7 [internal] load build context#7 sha256:0f7a8a6082a837c139acc2855e1b745bba9f28cc96709d45cd0b7be42442c0e8#7 transferring context: 2B done#7 DONE 0.0s#4 [2/6] RUN mkdir -p /src/build#4 sha256:b9fa3007a44471d47414dd29b3ff07ead6af28ede820a2b4bae0ce84cf2c5a83#4 CACHED#5 [3/6] WORKDIR /src/build#5 sha256:b2ec58a365fdd74c4f9030b0caff2e2225eea33617da306678ad037fce675388#5 CACHED#6 [4/6] RUN apk add --no-cache tzdata ca-certificates#6 sha256:0966097abf956d5781bc2330d49cf715cd52c3807e8fedfff07dec50907ff03b#6 CACHED#9 [6/6] COPY main /main#9 sha256:f4b81960427c014a020361bea0903728f289e1d796892fe0adc6409434f3ca76#9 ERROR: "/main" not found: not found#8 [5/6] COPY ./configs /configs#8 sha256:630f272dd60dd307f40dbbdaef277ee0dfc24b71fa11e10a3b8efd64d3c05086#8 ERROR: "/configs" not found: not found#4 [2/6] RUN mkdir -p /src/build#4 sha256:b9fa3007a44471d47414dd29b3ff07ead6af28ede820a2b4bae0ce84cf2c5a83#4 DONE 0.2s------PS:我找到问题出在哪里?请帮忙
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

这两个文件夹/main并不/configs存在。

COPY命令无法复制到此文件夹中。

1.解决方案

在构建时创建文件夹

RUN mkdir -p /main

RUN mkdir -p /configs

而不是使用COPY

2.解决方案

  1. 尝试在没有COPY和的情况下构建CMD

  2. run新形象

  3. execbash使用或进入运行容器sh

  4. 创建文件夹

  5. 退出exec容器

  6. 使用 docker run 创建正在运行的容器的新镜像commit

  7. 停止容器并删除它

  8. 使用您的新图像再次构建并包含COPYCMD


查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 328 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号