moh*_*mad 3 python go docker kubernetes dockerfile
我拥有的是多个相似且简单dockerfile的
但我想要的是有一个单一的基础dockerfile,我的dockerfiles 将它们的变量传递给它。
在我的情况下, s 之间的唯一区别dockerfile只是它们EXPOSE,所以我认为最好保留一个基础dockerfile,而其他dockerfiles 仅将变量注入到基础中,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"]
Run Code Online (Sandbox Code Playgroud)
IMPORT指令永远不会被执行很久以前就有提议的IMPORT指令Docker
不幸的是,问题已经关闭,而 PR 仍然开放:
\n但对于你的情况,你所需要的只是一点点sed
例如:
\n# Case1: inplace templating\nEXPOSED_PORT=8081 sed -i "s/EXPOSE 8080/EXPOSE $EXPOSED_PORT/" Dockerfile\n\n# Case2: generating Dockerfile from template\nsed "s/EXPOSE 8080/EXPOSE $EXPOSED_PORT/" Dockerfile.template > Dockerfile\nRun Code Online (Sandbox Code Playgroud)\n解释:
\nEXPOSED_PORT=8081声明局部bash变量sed是一个文本操作工具sed -i "s/EXPOSE 8080/EXPOSE $EXPOSED_PORT/" Dockerfile替换EXPOSE 8080为EXPOSE 8081sed "s/EXPOSE 8080/EXPOSE $EXPOSED_PORT/" Dockerfile.template > Dockerfile生成新Dockerfile的Dockerfile.template| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |