我有Dockerfile,我已经致力于git repo。我试图分阶段构建容器,只保存最后的容器阶段,其中安装了静态转二进制文件。
然而,"分期"容器似乎保存到我的系统中。我试图使用--rm标志自动删除它但没有成功。
这是我的Dockerfile
# Use golang alpine3.7 image for build
FROM golang:1.10.0-alpine3.7
# Maintainer information
LABEL Maintainer="Kimmo Hintikka"
# set working directory to local source
WORKDIR /go/src/github.com/HintikkaKimmo/kube-test-app
# Copy kube-test-app to currect working directory
COPY kube-test-app.go .
# build golang binary from the app source
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o kube-test-app .
# Use Alpine 3.7 as base to mach the build face
FROM alpine:3.7
# Maintainer information
LABEL Maintainer="Kimmo Hintikka"
# Install ca-certificates for HTTPS connections
RUN apk --no-cache add ca-certificates
# Set working directory
WORKDIR /root/
# Copy binary from previous stage. --from=0 means the index of the build action
COPY --from=0 /go/src/github.com/HintikkaKimmo/kube-test-app/kube-test-app .
# Run the binary
CMD [ "./kube-test-app" ]
这是我用来构建它的命令。
docker build --rm github.com/hintikkakimmo/kube-test-app -t kube-test-app
这可以成功构建,但也会创建一个额外的无标记TAG <none>
容器,这是我构建的第一阶段。
~/go/src/github.com/hintikkakimmo/kube-test-app(master*) » docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kube-test-app latest f87087bf2549 8 minutes ago 11.3MB
<none> <none> 1bb40fa05f27 8 minutes ago 397MB
golang 1.10.0-alpine3.7 85256d3905e2 7 days ago 376MB
alpine 3.7 3fd9065eaf02 6 weeks ago 4.15MB
alpine latest 3fd9065eaf02 6 weeks ago 4.15MB
我的Docker版本是:
~ » docker --version kimmo.hintikka@ie.ibm.com@Kimmos-MacBook-Pro
Docker version 17.12.0-ce, build c97c6d6
答案 0 :(得分:4)
你应该像这样构建它:
docker build --rm -t kube-test-app .
如果您找到了dockerfile,则找到或指定dockerfile的路径
docker build --rm -t kube-test-app -f path/to/dockerfile .
-t
是标记,您构建的泊坞窗图片的名称
要删除除图像和运行容器以外的所有内容,请使用docker system prune
删除图片docker rmi -f image_name
答案 1 :(得分:0)
我采取了另一种方法。我在中间容器上设置了标签:
FROM golang:1.14.2 AS builder
LABEL builder=true
运行构建文件时,我只需追加一条命令即可查找并销毁包含该标签的图像:
docker build . -t custom-api:0.0.1 && \
docker rmi `docker images --filter label=builder=true -q`