我正在尝试为我的 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.解决方案
尝试在没有
COPY
和的情况下构建CMD
比
run
新形象exec
bash
使用或进入运行容器sh
创建文件夹
退出
exec
容器使用 docker run 创建正在运行的容器的新镜像
commit
停止容器并删除它
使用您的新图像再次构建并包含
COPY
和CMD
- 1 回答
- 0 关注
- 328 浏览
添加回答
举报
0/150
提交
取消