《Grpc+Protobuf学习笔记》三、go使用docker编译运行
dockerfile编写
# 打包依赖阶段使用golang作为基础镜像
FROM golang:1.14 as builder
WORKDIR /app
# 启用go module
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
#
RUN git clone 这里是githu地址
## 切换到相应目录go build
RUN cd /app/image-merge_grpc && go build /app/image-merge_grpc
## 支持中文alpine的基础镜像
FROM frolvlad/alpine-glibc:alpine-3.11_glibc-2.30
WORKDIR /app
# 将上一个阶段app文件夹下的所有文件复制进来
COPY --from=builder /app .
# 复制下时区文件,不知道中文alpine镜像有没有,待测试
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
## 为了防止代码中请求https链接报错,我们需要将证书纳入到scratch中
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/cert
EXPOSE 50054
WORKDIR /app/image-merge_grpc
ENTRYPOINT ["./imageMerge"]
docker-compose.yml 编写
version: '3'
services:
go_images_merge:
container_name: go_images_merge #容器名称
build: ./docker/go_image_merge #dockerfile所在目录
image: go_images_merge:v1.0.3 #镜像名称
restart: always #自动重启
ports:
- "50054:50054"
本作品采用《CC 协议》,转载必须注明作者和本文链接