Golang应用Docker构建出现仓库与标签名<none>错误如何解决?
问题解决方案
核心原因说明
你遇到的镜像Repository和Tag为
- 构建镜像时未指定标签参数,就算构建成功也不会生成带名称的镜像
- Dockerfile存在语法错误,导致构建流程中途中断,生成无标签的错误镜像
具体错误修复
Dockerfile错误点
- 最后一行CMD指令使用了转义字符
"而非标准双引号,直接导致构建失败 - 启动二进制时未指定相对路径,会出现命令找不到的错误,导致后续运行失败
go build未显式指定输出文件,存在输出名异常的风险
修复后的Dockerfile
FROM golang:1.13 # 设置容器内工作目录 WORKDIR $GOPATH/src/github.com/dhruv354/iitk-coin # 复制依赖文件下载依赖,利用Docker层缓存提升后续构建速度 COPY go.mod . COPY go.sum . RUN go mod download # 复制全量源码到工作目录 COPY . . # 显式指定输出构建可执行文件 RUN go build -o iitk-coin . EXPOSE 8080 # 启动程序,./表示读取当前目录下的二进制文件 CMD ["./iitk-coin"]
正确构建操作
执行构建命令时必须添加-t参数指定镜像的仓库名和标签:
docker build -t iitk-coin:v1 .
构建完成后执行docker images即可看到名称为iitk-coin、标签为v1的正常镜像。
内容的提问来源于stack exchange,提问作者dhruv singhal
相关产品推荐
相关产品推荐

