Golang Dockerfile 多阶编译,并拉取私有库

Dockerfile

FROM golang:latest as builder
MAINTAINER DukeAnn <duke@ann.live>
ARG VERSION=1.0.0
WORKDIR $GOPATH/src/project
# 当前目录拷贝进 Docker
ADD . $GOPATH/src/project
# 拷贝密钥,设置私有库拉取
ADD ./.ssh/ /root/.ssh
RUN git config --global http.extraheader "PRIVATE-TOKEN: TOKEN" \
    && git config --global url."git@gitlab.com:".insteadOf "http://git.gitlab.com/" \
    && git config --global user.name "dukeann" \
    && git config --global user.email  "duke@ann.live" \
    && chmod 600 /root/.ssh/id_rsa \
    && chmod 644 /root/.ssh/id_rsa.pub \
    && chmod 644 /root/.ssh/known_hosts
# 交叉编译
RUN CGO_ENABLED=0 GOOS=linux go build  -a -installsuffix cgo -o project .
# 运行镜像
FROM alpine:latest as prod
RUN apk --no-cache add ca-certificates
WORKDIR /root/
EXPOSE 80
COPY --from=0 /go/src/project/release ./project
ENTRYPOINT ["/bin/sh", "./project/project", "start"]
#ENTRYPOINT ["/bin/sh"]

关于 PRIVATE-TOKEN: TOKEN 获取:https://www.jianshu.com/p/5831edfa6c78

多阶编译详解:https://yeasy.gitbooks.io/docker_practice/content/image/multistage-builds/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 摘要 本文是辉哥Docker入门的一些摘要和资源分享,涉及DOCKER入门,框架原理,镜像制作和资源列表等内...
    笔名辉哥阅读 4,610评论 0 74
  • 一. docker是什么 docker是一个运行在操作系统上的软件,这个软件上面可以运行多个相互隔离的容器,容器可...
    响响月月阅读 211评论 0 0
  • 爷爷去世有二十年了,关于爷爷,有三段记忆一直停留在我脑海里、存在心里,陪伴了我二十年。 片段一 : 小时候住在乡下...
    懒洋洋O_d0fb阅读 698评论 1 4
  • 今天我点开了育儿群的一个连接那个红炸美国的中国钢琴神童又火了。我点去进看了下这个视频,一下子这个小姑娘的演奏...
    郑珍容阅读 375评论 0 0
  • 一年一度的期中成绩,考试结束了。即将迎来的是家长会。看到老师发来的成绩表,心里有种默默的心酸,怎么会考得这么差...
    向小雅阅读 246评论 0 5