gpt4 book ai didi

python - 将共享 dockerfile 用于多个 dockerfile

转载 作者:行者123 更新时间:2023-12-05 08:25:03 33 4
gpt4 key购买 nike

我拥有的是多个相似且简单的dockerfile

但我想要的是有一个单一的基础 dockerfile 和我的 dockerfile将他们的变量传递给它。

在我的例子中,dockerfile 之间的唯一区别是只是他们的 EXPOSE,所以我认为最好保留一个基础 dockerfile 和其他 dockerfile 只将变量注入(inject)基础 dockerfile 像一个模板引擎

示例 dockerfile:

FROM golang:1.17 AS builder
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o /bin/app ./cmd/root.go

FROM alpine:latest
WORKDIR /bin/
COPY --from=builder /bin/app .
EXPOSE 8080
LABEL org.opencontainers.image.source="https://github.com/mohammadne/bookman-auth"
ENTRYPOINT ["/bin/app"]
CMD ["server", "--env=dev"]

最佳答案

您可以将公开的端口作为镜像的构建参数。如果你像这样制作一个 dockerfile

FROM alpine:latest
ARG EXPOSED_PORT
EXPOSE ${EXPOSED_PORT}

你可以在构建时通过传递端口号来指定暴露哪个端口

docker build -t myimage --build-arg EXPOSED_PORT=8000 .

值得注意的是,EXPOSE语句主要是文档。如果没有 EXPOSE 语句,您的图像将同样有效。

关于python - 将共享 dockerfile 用于多个 dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69234878/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com