我有一个用于准备Docker镜像的脚本。我在Dockerfile中有这个:

COPY my_script /
RUN bash -c "/my_script"
my_script文件包含图像中不需要的 secret (完成后会自动删除)。

问题在于,尽管COPY是一个单独的图层,但尽管被删除,该文件仍保留在图像中。我需要的是COPY和RUN都影响同一层。

如何复制和运行脚本,以便两个 Action 都影响同一层?

最佳答案

看看multi-stage:

使用多阶段构建



Dockerfile:

FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]

关于docker - 一层Dockerfile COPY和RUN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56885945/

10-16 11:35