我正在尝试为我的sample-go应用构建一个docker镜像。我从sample-app文件夹本身运行它,并使用goland编辑器的终端。但是构建失败了,给了我一些错误。
我的docker文件如下:
FROM alpine:latest
RUN mkdir -p /src/build
WORKDIR /src/build
RUN apk add --no-cache tzdata ca-certificates
COPY ./configs /configs
COPY main /main
EXPOSE 8000
CMD ["/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
------
> [5/6] COPY ./configs /configs:
------
------
> [6/6] COPY main /main:
------
failed to compute cache key: "/main" not found: not found
PS:我找不到问题在哪里?帮助请
5条答案
按热度按时间5vf7fwbs1#
在我的情况下,我错过了.dockerignore文件中的文件夹条目。做一些类似的事情。
jfgube3f2#
这是一个基本的错误。
COPY ./configs /configs
:将configs
文件夹从host复制到Docker镜像。COPY main /main
:将可执行文件main
从host复制到Docker镜像。这些问题是:
/configs
,/main
。你必须手动创建它们(Docker理解你的命令)。siv3szwd3#
两个文件夹
/main
和/configs
不存在。COPY
命令无法复制到此文件夹。1.解决方案
在生成时创建文件夹
使用
COPY
2.解决方案
1.尝试在不使用
COPY
和CMD
的情况下进行构建1.比
run
的新形象1.使用
bash
或sh
插入运行容器1.创建文件夹
1.退出
exec
容器1.使用docker run
commit
创建正在运行的容器的新映像1.停止容器并将其删除
1.使用新映像重新构建并包含
COPY
和CMD
ecfdbz9o4#
在我的情况下,问题是从我的机器连接的vpn/代理网络。它工作后,我断开了vpn/代理网络。
0yg35tkg5#
以这种方式写作。