Compare commits
19 Commits
589197e284
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 20a80982fe | |||
| 5be74f2698 | |||
| bb9f0a3a1f | |||
| d1a2af3b6d | |||
| 08736d2692 | |||
| 919d4350d0 | |||
| 109c9f014b | |||
| 627ca54c65 | |||
| 4d5cdc0d16 | |||
| 35a1000c18 | |||
| 427d7ef9cd | |||
| fe0e98df69 | |||
| dd8d802279 | |||
| 8e17b97481 | |||
| 9e2d87acb6 | |||
| b3450bd58a | |||
| 9e67914b1b | |||
| a996c604dd | |||
| 38a9a81bae |
@@ -15,11 +15,13 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
runs-on: docker
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 检出代码
|
- name: 检出代码
|
||||||
uses: actions/checkout@v4
|
run: |
|
||||||
|
git clone https://git.boss160.cn/csxj2026/junhong_cmp_fiber.git .
|
||||||
|
git checkout ${{ github.sha }}
|
||||||
|
|
||||||
- name: 设置镜像标签
|
- name: 设置镜像标签
|
||||||
id: tag
|
id: tag
|
||||||
@@ -36,7 +38,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 登录 Docker Registry
|
- name: 登录 Docker Registry
|
||||||
run: |
|
run: |
|
||||||
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login "${{ env.REGISTRY }}" --username "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
|
||||||
|
|
||||||
- name: 构建 API 镜像
|
- name: 构建 API 镜像
|
||||||
run: |
|
run: |
|
||||||
@@ -61,10 +63,10 @@ jobs:
|
|||||||
cd ${{ env.DEPLOY_DIR }}
|
cd ${{ env.DEPLOY_DIR }}
|
||||||
|
|
||||||
echo "拉取最新镜像..."
|
echo "拉取最新镜像..."
|
||||||
docker-compose -f docker-compose.prod.yml pull
|
docker compose -f docker-compose.prod.yml pull
|
||||||
|
|
||||||
echo "执行滚动更新..."
|
echo "执行滚动更新..."
|
||||||
docker-compose -f docker-compose.prod.yml up -d --no-deps
|
docker compose -f docker-compose.prod.yml up -d --no-deps
|
||||||
|
|
||||||
echo "等待服务健康检查..."
|
echo "等待服务健康检查..."
|
||||||
sleep 10
|
sleep 10
|
||||||
@@ -77,7 +79,7 @@ jobs:
|
|||||||
docker image prune -f
|
docker image prune -f
|
||||||
|
|
||||||
echo "部署完成!"
|
echo "部署完成!"
|
||||||
docker-compose -f docker-compose.prod.yml ps
|
docker compose -f docker-compose.prod.yml ps
|
||||||
|
|
||||||
- name: 构建结果通知
|
- name: 构建结果通知
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# ================================
|
# ================================
|
||||||
# 阶段 1: 构建阶段
|
# 阶段 1: 构建阶段
|
||||||
# ================================
|
# ================================
|
||||||
FROM golang:1.23.4-alpine AS builder
|
FROM golang:1.25.6-alpine AS builder
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
@@ -11,6 +11,10 @@ RUN apk add --no-cache git ca-certificates tzdata
|
|||||||
|
|
||||||
# 复制 go.mod 和 go.sum(利用 Docker 缓存)
|
# 复制 go.mod 和 go.sum(利用 Docker 缓存)
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
|
|
||||||
|
# 使用国内 Go 代理加速依赖下载
|
||||||
|
ENV GOPROXY=https://goproxy.cn,direct
|
||||||
|
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
# 复制源代码
|
# 复制源代码
|
||||||
@@ -20,7 +24,7 @@ COPY . .
|
|||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-ldflags="-w -s" \
|
-ldflags="-w -s" \
|
||||||
-o /build/api \
|
-o /build/api \
|
||||||
cmd/api/main.go
|
./cmd/api
|
||||||
|
|
||||||
# 下载 golang-migrate 工具
|
# 下载 golang-migrate 工具
|
||||||
RUN go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
|
RUN go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
|
||||||
@@ -28,7 +32,7 @@ RUN go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate
|
|||||||
# ================================
|
# ================================
|
||||||
# 阶段 2: 运行阶段
|
# 阶段 2: 运行阶段
|
||||||
# ================================
|
# ================================
|
||||||
FROM alpine:latest
|
FROM alpine:3.19
|
||||||
|
|
||||||
# 安装运行时依赖
|
# 安装运行时依赖
|
||||||
RUN apk add --no-cache ca-certificates tzdata bash curl
|
RUN apk add --no-cache ca-certificates tzdata bash curl
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# ================================
|
# ================================
|
||||||
# 阶段 1: 构建阶段
|
# 阶段 1: 构建阶段
|
||||||
# ================================
|
# ================================
|
||||||
FROM golang:1.23.4-alpine AS builder
|
FROM golang:1.25.6-alpine AS builder
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
@@ -11,6 +11,10 @@ RUN apk add --no-cache git ca-certificates tzdata
|
|||||||
|
|
||||||
# 复制 go.mod 和 go.sum(利用 Docker 缓存)
|
# 复制 go.mod 和 go.sum(利用 Docker 缓存)
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
|
|
||||||
|
# 使用国内 Go 代理加速依赖下载
|
||||||
|
ENV GOPROXY=https://goproxy.cn,direct
|
||||||
|
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
# 复制源代码
|
# 复制源代码
|
||||||
@@ -20,12 +24,12 @@ COPY . .
|
|||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||||
-ldflags="-w -s" \
|
-ldflags="-w -s" \
|
||||||
-o /build/worker \
|
-o /build/worker \
|
||||||
cmd/worker/main.go
|
./cmd/worker
|
||||||
|
|
||||||
# ================================
|
# ================================
|
||||||
# 阶段 2: 运行阶段
|
# 阶段 2: 运行阶段
|
||||||
# ================================
|
# ================================
|
||||||
FROM alpine:latest
|
FROM alpine:3.19
|
||||||
|
|
||||||
# 安装运行时依赖
|
# 安装运行时依赖
|
||||||
RUN apk add --no-cache ca-certificates tzdata bash
|
RUN apk add --no-cache ca-certificates tzdata bash
|
||||||
|
|||||||
Reference in New Issue
Block a user