Skip to content

Commit c223591

Browse files
committed
feat(workflow): 更新基础镜像构建工作流以支持MySQL
- 将工作流名称从"DongTai IAST Base Image"更改为"DongTai IAST MySQL Image"- 修改job名称为"dongtai-mysql"并添加MySQL和Redis服务依赖 - 升级docker/login-action版本从v1到v2 - 移除原有的webhook通知步骤(start-build和finish build) - 添加数据库迁移和结构导出步骤 - 构建并推送MySQL 5.7和8.0两个版本的镜像- 移除logstash、logrotate和redis的独立构建任务- 使用sed命令动态修改Dockerfile以适配MySQL 8.0构建
1 parent 24bf075 commit c223591

1 file changed

Lines changed: 44 additions & 37 deletions

File tree

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Release DongTai IAST Base Image (Manual)
1+
name: Release DongTai IAST MySQL Image (Manual)
22

33
on:
44
workflow_dispatch:
@@ -9,31 +9,34 @@ on:
99
default: "v1.0.0"
1010

1111
jobs:
12-
Release-DongTai-Infra-Service:
12+
dongtai-mysql:
13+
name: Build and Push DongTai MySQL Image (x86 only)
1314
runs-on: ubuntu-latest
14-
strategy:
15-
max-parallel: 4
16-
steps:
17-
- name: start-build
18-
uses: joelwmale/webhook-action@master
19-
with:
20-
url: ${{ secrets.WEBHOOK_URL }}
21-
body: '{"msg_type": "interactive","card": {"config": {"wide_screen_mode": true,"enable_forward": true},"elements": [{"tag": "div","text": {"content": "状态:构建开始\n项目:${{github.repository}}\n分支:${{github.ref}}\n流程:${{github.workflow}}\n构建编号:${{github.run_number}}\n触发事件:${{github.event_name}}\n提交人:${{github.actor}}\n手动输入版本:${{ github.event.inputs.tag_name }}\n","tag": "lark_md"}}]}}'
15+
services:
16+
dongtai-mysql:
17+
image: dongtai/dongtai-mysql:latest
18+
ports:
19+
- 3306:3306
20+
dongtai-redis:
21+
image: dongtai/dongtai-redis:latest
22+
ports:
23+
- 6379:6379
2224

25+
steps:
2326
- name: Checkout
2427
uses: actions/checkout@v3
2528

2629
- name: Set up Docker Buildx
2730
uses: docker/setup-buildx-action@v2
2831

2932
- name: Login to DockerHub
30-
uses: docker/login-action@v1
33+
uses: docker/login-action@v2
3134
with:
3235
username: ${{ secrets.DONGTAI_DOCKERHUB_USERNAME }}
3336
password: ${{ secrets.DONGTAI_DOCKERHUB_TOKEN }}
3437

3538
- name: Login to AliyunRegistry
36-
uses: docker/login-action@v1
39+
uses: docker/login-action@v2
3740
with:
3841
registry: ${{ secrets.ALIYUN_REGISTRY }}
3942
username: ${{ secrets.ALIYUN_DOCKERHUB_USER }}
@@ -45,40 +48,44 @@ jobs:
4548
ID=$(echo ${TAG_NAME##v})
4649
echo "version=$ID" >> $GITHUB_OUTPUT
4750
48-
- name: Build and push logstash
49-
uses: docker/build-push-action@v3
50-
with:
51-
context: ./logstash
52-
file: ./logstash/Dockerfile
53-
push: true
54-
platforms: linux/amd64
55-
tags: |
56-
dongtai/dongtai-logstash:${{ steps.release.outputs.version }}
57-
dongtai/dongtai-logstash:latest
51+
- name: Pull and migrate database
52+
working-directory: ./mysql
53+
run: |
54+
echo "开始拉取 dongtai-server:${{ steps.release.outputs.version }}"
55+
docker pull wukong.tencentcloudcr.com/dongtai/dongtai-server:${{ steps.release.outputs.version }}
56+
echo "执行 migrate 初始化数据库结构..."
57+
docker run -i --name dongtai-server-update \
58+
-v $(pwd)/config-tutorial.ini:/opt/dongtai/dongtai_conf/conf/config.ini \
59+
--rm \
60+
--link $(docker ps | grep dongtai-mysql | awk '{print $1}')":dongtai-mysql" \
61+
--link $(docker ps | grep dongtai-redis | awk '{print $1}')":dongtai-redis" \
62+
wukong.tencentcloudcr.com/dongtai/dongtai-server:${{ steps.release.outputs.version }} migrate || exit 1
5863
59-
- name: Build and push logrotate
64+
echo "导出数据库结构为 dongtai-mysql-schema.sql..."
65+
docker exec -i $(docker ps | grep dongtai-mysql | awk '{print $1}') /bin/bash -c \
66+
"mysqldump dongtai_webapi -u root -p'dongtai-iast' --single-transaction" > dongtai-mysql-schema.sql || exit 1
67+
68+
- name: Build and Push MySQL 5.7 Image
6069
uses: docker/build-push-action@v3
6170
with:
62-
context: ./logrotate
63-
file: ./logrotate/Dockerfile
71+
context: ./mysql
6472
push: true
6573
platforms: linux/amd64
6674
tags: |
67-
dongtai/dongtai-logrotate:${{ steps.release.outputs.version }}
68-
dongtai/dongtai-logrotate:latest
75+
dongtai/dongtai-mysql:${{ steps.release.outputs.version }}
76+
dongtai/dongtai-mysql:latest
6977
70-
- name: Build and push Redis
78+
- name: Modify Dockerfile to MySQL 8.0
79+
working-directory: ./mysql
80+
run: |
81+
sed -i 's#5.7#8.0#g' Dockerfile
82+
83+
- name: Build and Push MySQL 8.0 Image
7184
uses: docker/build-push-action@v3
7285
with:
73-
context: ./redis
86+
context: ./mysql
7487
push: true
7588
platforms: linux/amd64
7689
tags: |
77-
dongtai/dongtai-redis:${{ steps.release.outputs.version }}
78-
dongtai/dongtai-redis:latest
79-
80-
- name: finish build
81-
uses: joelwmale/webhook-action@master
82-
with:
83-
url: ${{ secrets.WEBHOOK_URL }}
84-
body: '{"msg_type": "interactive","card": {"config": {"wide_screen_mode": true,"enable_forward": true},"elements": [{"tag": "div","text": {"content": "状态:构建完成\n项目:${{github.repository}}\n分支:${{github.ref}}\n流程:${{github.workflow}}\n构建编号:${{github.run_number}}\n触发事件:${{github.event_name}}\n提交人:${{github.actor}}\n版本:${{ github.event.inputs.tag_name }}\n","tag": "lark_md"}}]}}'
90+
dongtai/dongtai-mysql-8:${{ steps.release.outputs.version }}
91+
dongtai/dongtai-mysql-8:latest

0 commit comments

Comments
 (0)