前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go框架中使用CGO,docker build image打包镜像注意事项

go框架中使用CGO,docker build image打包镜像注意事项

原创
作者头像
whileideath
修改2020-10-22 15:30:16
3.8K0
修改2020-10-22 15:30:16
举报
文章被收录于专栏:全栈工程师的自我修养

编写Dockerfile时候注意以下几点。

可以参考,但不要照搬。

RUN apk add build-base

CGO_ENABLED=1

这两个命令是关键。

代码语言:shell
复制

# 编译
FROM golang:1.15.2-alpine  as builder
#ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOPROXY=https://goproxy.cn
ENV GO111MODULE=off
ENV GOPATH="/go/release:/go/release/src/gopathlib/"
#安装编译需要的环境gcc等
RUN apk add build-base

WORKDIR /go/release
#将上层整个文件夹拷贝到/go/release
ADD . /go/release/src
WORKDIR /go/release/src
#交叉编译,需要制定CGO_ENABLED=1,默认是关闭的
RUN  GOOS=linux CGO_ENABLED=1 GOARCH=amd64 go build -ldflags="-s -w" -installsuffix cgo -o ./bin/localized main.go

#编译
FROM alpine

COPY --from=builder  /go/release/src/bin/localized /app/localized-1.0/bin/localized
COPY --from=builder  /go/release/src/conf /app/localized-1.0/conf
COPY --from=builder  /go/release/src/log /app/localized-1.0/log

WORKDIR /app/localized-1.0

CMD ["/app/localized-1.0/localized"]
EXPOSE 9088

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档