docker compose 编排go环境

一、docker-compose.yaml

version: "3.5"
services:
  shop_mobile_back:
    restart: always
    build:
      context: .
      args:
        ENVARG: test
      dockerfile: shop.back.dockerfile
    image: shop_mobile_back:test
    environment:
      - BEEGO_MODE=prod
    ports:
      - 9093:9093
    networks:
      - diagnosis_network

networks:
  diagnosis_network:
    driver: bridge

二、shop.back.dockerfile

#多阶段构建从17.05开始支持,当前镜像别名为builder
FROM golang:builder AS builder
#定义参数
ARG ENVARG
#定义工作目录,镜像各层的工作目录为当前目录
WORKDIR /go/src
#拷贝上下文下的所有文件到工作目录
COPY . .
#下载程序以来的所有包及构建生成程序
RUN git clone http://user:pwd@ip/yuyu/test.git \
&& cd shop_mobile_back \
&& CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -a -v\
&& mkdir -p /release/conf \
&& cp -r shop_mobile_back /release \
&& cp -rf ./conf/$ENVARG/. /release/conf

#二级镜像,真实需要的
FROM library/golang:runner

WORKDIR /app
#变量程序名称
COPY --from=builder /release  .

# HEALTHCHECK --interval=1m30s --timeout=10s \
#  CMD curl -fs http://localhost/v1/connect/status || exit 1

EXPOSE 9093

ENTRYPOINT ["./test"]
发布了116 篇原创文章 · 获赞 10 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/m0_38004619/article/details/104101212