《Grpc+Protobuf学习笔记》三、go使用docker编译运行

Docker/容器
382
0
0
2022-04-15
标签   gRPC

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"

《Grpc+Protobuf学习笔记》一、前言

《Grpc+Protobuf学习笔记》二、protobuf安装生成代码插件

《Grpc+Protobuf学习笔记》三、go使用docker编译运行