多个项目共用一个dockerfile
公司的大项目底下分了很多小项目,都是用dockerfile来构建镜像。每个小项目的dockerfile都是类似的。
其中一个例子如下:
FROM golang:1.11.1 AS build
WORKDIR /go/src/system
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -tags=jsoniter -o main src/main.go
FROM alpine:3.8
ENV TZ=Asia/Shanghai LANG=C.UTF-8 TERM=xterm
RUN apk --update add ca-certificates tzdata && \
cp /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone
WORKDIR /go/src/system
RUN touch /etc/config.yaml && mkdir -p /t/logs/
COPY --from=build /go/src/system/main .
VOLUME ["/t/logs"]
ENTRYPOINT ["./main"]
所有项目的dockerfile除了system会被替换成对应的工程目录名字,其他都一样。如何让所有项目共享一个dockerfile呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试ARG
用同一个dockerfile,build几个镜像各自用不就好了吗
可以查查go有没有类似maven docker-maven-plugind的插件,java中可以在每个子项目pom中引入
通过 <dockerDirectory>${basedir}/docker</dockerDirectory> <!-- 指定 Dockerfile 路径-->