《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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!