Browse Source

ci/cd optimization

Signed-off-by: jagger <cossjie@foxmail.com>
pull/343/head
jagger 1 year ago
parent
commit
a364ded342
2 changed files with 16 additions and 2 deletions
  1. +8
    -0
      .github/workflows/docker-publish.yml
  2. +8
    -2
      Dockerfile

+ 8
- 0
.github/workflows/docker-publish.yml View File

@@ -43,6 +43,14 @@ jobs:
run: | run: |
echo "::set-output name=build_time::$(date +'%Y%m%d%H%M%S')" echo "::set-output name=build_time::$(date +'%Y%m%d%H%M%S')"


- name: Cache Go modules
uses: actions/cache@v3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Build and push multi-arch image - name: Build and push multi-arch image
run: | run: |
docker buildx build \ docker buildx build \


+ 8
- 2
Dockerfile View File

@@ -1,20 +1,26 @@
# 第一阶段:构建二进制文件
FROM --platform=$BUILDPLATFORM golang:alpine AS builder FROM --platform=$BUILDPLATFORM golang:alpine AS builder


WORKDIR /app WORKDIR /app
COPY . .
COPY go.mod go.sum ./


# 缓存依赖项
ENV GO111MODULE=on GOPROXY=https://goproxy.cn,direct ENV GO111MODULE=on GOPROXY=https://goproxy.cn,direct
RUN go mod download RUN go mod download


COPY . .

ARG TARGETOS ARG TARGETOS
ARG TARGETARCH ARG TARGETARCH

# 使用 GOOS 和 GOARCH 环境变量来构建不同架构的二进制文件 # 使用 GOOS 和 GOARCH 环境变量来构建不同架构的二进制文件
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-w -s" -o pcm-core-api RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-w -s" -o pcm-core-api


# 第二阶段:构建最终镜像
FROM --platform=$TARGETPLATFORM alpine:latest FROM --platform=$TARGETPLATFORM alpine:latest
WORKDIR /app WORKDIR /app


#修改alpine源为上海交通大学
# 修改alpine源为上海交通大学
RUN apk add --no-cache ca-certificates && update-ca-certificates && \ RUN apk add --no-cache ca-certificates && update-ca-certificates && \
apk add --update tzdata && \ apk add --update tzdata && \
rm -rf /var/cache/apk/* rm -rf /var/cache/apk/*


Loading…
Cancel
Save