无法构建kubernetes-certbot Docker容器,请求技术协助
解决Docker构建时
run.sh: no such file or directory错误的方案 看起来你遇到的核心问题是Docker构建过程中找不到run.sh文件——这和你替换版本号没关系,就算用原仓库的Dockerfile直接构建,如果构建上下文里没有这个文件,也会报同样的错。
错误原因分析
Docker的COPY指令是从构建上下文目录(也就是你执行docker build命令时指定的路径,默认是当前工作目录)里读取文件的。原仓库的Dockerfile和run.sh是放在同一目录下的,如果你只单独复制了Dockerfile,没把run.sh也放到同一目录,构建时自然找不到这个文件。
具体解决步骤
- 第一步:完整获取仓库的所有文件
不要只复制Dockerfile,直接克隆整个仓库到本地:git clone https://github.com/choffmeister/kubernetes-certbot.git cd kubernetes-certbot - 第二步:修改kubectl版本号
打开Dockerfile,找到Step5的wget命令,把版本号替换成v1.10.2,修改后的指令如下:RUN wget https://storage.googleapis.com/kubernetes-release/release/v1.10.2/bin/linux/amd64/kubectl && chmod +x kubectl && mv kubectl /usr/local/bin - 第三步:执行构建命令
在包含Dockerfile和run.sh的当前目录下运行构建:docker build -t kubernetes-certbot:1.10.2 .
备选方案(如果不想克隆整个仓库)
如果你只想保留必要文件,需要:
- 把原仓库的
run.sh文件下载到和Dockerfile同一目录下 - 确保执行
docker build时,当前目录就是这两个文件所在的目录,再执行构建命令
内容的提问来源于stack exchange,提问作者user9371911
相关产品推荐
相关产品推荐

