Skip to content

Commit 26a70a6

Browse files
ZllincCunzili
andauthored
GHCR和ACR都推送国内外镜像 (#34)
* ACR推送 * Revert "Merge pull request #1 from Zllinc/aliyunCI" This reverts commit 95d623c, reversing changes made to 609a69c. * 国内外镜像都推送至ghcr和acr * 镜像名转小写 * 测试所有分支 * 给get_all_dockerfile添加执行权限 * 修改Dockerfile用来测试 * 修改ACR镜像名称输出 * 修改ACR镜像输出名字 * main分支推送生效 * 不同镜像放到不同的ACR repo里 * 变量名错误修改 --------- Co-authored-by: Cunzili <[email protected]>
1 parent 609a69c commit 26a70a6

File tree

5 files changed

+44
-20
lines changed

5 files changed

+44
-20
lines changed

.github/workflows/docker-image.yml

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
default: 'latest'
1010
push:
1111
branches:
12-
- 'main'
12+
- 'main'
1313
jobs:
1414
define-matrix:
1515
runs-on: ubuntu-latest
@@ -67,17 +67,30 @@ jobs:
6767
registry: ghcr.io
6868
username: ${{ github.repository_owner }}
6969
password: ${{ secrets.GITHUB_TOKEN }}
70-
- name: Build and push image
70+
- name: Login to Aliyun ACR
71+
uses: docker/login-action@v3
72+
with:
73+
registry: ${{ secrets.ALIYUN_REGISTRY }}
74+
username: ${{ secrets.ALIYUN_USERNAME }}
75+
password: ${{ secrets.ALIYUN_PASSWORD }}
76+
- name: Build and push images
7177
run: |
7278
echo "build_target=${{ matrix.build_target }}"
7379
echo "tag=${{ needs.define-matrix.outputs.tag }}"
80+
ghcr_image_name=$(bash script/get_image_name.sh "ghcr.io" "${{ github.repository_owner }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag }}" | tr '[:upper:]' '[:lower:]')
81+
acr_image_name=$(bash script/get_image_name.sh "${{ secrets.ALIYUN_REGISTRY }}" "${{ secrets.ALIYUN_NAMESPACE }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag }}" | tr '[:upper:]' '[:lower:]')
82+
echo "ghcr_image_name=$ghcr_image_name" >> $GITHUB_OUTPUT
83+
echo "acr_image_name=$acr_image_name" >> $GITHUB_OUTPUT
84+
echo "Building and pushing both images..."
85+
is_cn="0" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$ghcr_image_name" "$acr_image_name" $is_cn
86+
- name: Build and push images_cn
87+
run: |
88+
echo "build_target=${{ matrix.build_target }}"
7489
echo "tag_cn=${{ needs.define-matrix.outputs.tag_cn }}"
75-
image_name=$(bash script/get_image_name.sh ${{ github.repository_owner }} "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag }}")
76-
image_name_cn=$(bash script/get_image_name.sh ${{ github.repository_owner }} "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag_cn }}")
77-
echo "image_name=$image_name" >> $GITHUB_OUTPUT
78-
echo "image_name_cn=$image_name_cn" >> $GITHUB_OUTPUT
79-
echo "building image $image_name"
80-
is_cn="0" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$image_name" $is_cn
81-
echo "building image $image_name_cn"
82-
is_cn="1" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$image_name_cn" $is_cn
90+
ghcr_image_name_cn=$(bash script/get_image_name.sh "ghcr.io" "${{ github.repository_owner }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag_cn }}" | tr '[:upper:]' '[:lower:]')
91+
acr_image_name_cn=$(bash script/get_image_name.sh "${{ secrets.ALIYUN_REGISTRY }}" "${{ secrets.ALIYUN_NAMESPACE }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag_cn }}" | tr '[:upper:]' '[:lower:]')
92+
echo "ghcr_image_name_cn=$ghcr_image_name_cn" >> $GITHUB_OUTPUT
93+
echo "acr_image_name_cn=$acr_image_name_cn" >> $GITHUB_OUTPUT
94+
echo "Building and pushing both images..."
95+
is_cn="1" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$ghcr_image_name_cn" "$acr_image_name_cn" $is_cn
8396
# TODO: generate runtime yaml and json

Framework/nginx/1.22.1/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
FROM ghcr.io/labring-actions/devbox/node.js-20:219d11
2+
# Test comment for GitHub Actions trigger
23
USER root
34
RUN cd /home/devbox/project
45

script/build_and_push_images.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
#!/bin/bash
22

33
build_target=$1
4-
image_name=$2
5-
is_cn=$3
4+
image_name1=$2
5+
image_name2=$3
6+
is_cn=$4
67

78
function build_and_push_image() {
89
docker buildx build --push \
910
--file "$build_target" \
1011
--platform linux/amd64 \
11-
--tag "$image_name" \
12+
--tag "$image_name1" \
13+
--tag "$image_name2" \
1214
.
1315
}
1416

@@ -21,4 +23,4 @@ if [ "$is_cn" == "1" ]; then
2123
execute_cn_patch
2224
fi
2325

24-
build_and_push_image
26+
build_and_push_image

script/get_all_dockerfile.sh

100644100755
File mode changed.

script/get_image_name.sh

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
#!/bin/bash
22

3-
if [ "$#" -ne 3 ]; then
4-
echo "Usage: $0 <username> <build_target> <tag>"
3+
if [ "$#" -ne 4 ]; then
4+
echo "Usage: $0 <registry> <namespace> <build_target> <tag>"
55
exit 1
66
fi
77

8-
USERNAME=$1
9-
BUILD_TARGET=$2
10-
TAG=$3
8+
REGISTRY=$1
9+
NAMESPACE=$2
10+
BUILD_TARGET=$3
11+
TAG=$4
1112

13+
# 提取镜像标识
1214
IFS='/' read -ra ADDR <<< "$BUILD_TARGET"
1315
IMAGE_NAME="${ADDR[1]}-${ADDR[2]}"
1416

15-
echo "ghcr.io/$USERNAME/devbox/$IMAGE_NAME:$TAG"
17+
if [[ "$REGISTRY" == ghcr.io* ]]; then
18+
# ghcr.io 格式
19+
echo "$REGISTRY/$NAMESPACE/devbox/$IMAGE_NAME:$TAG"
20+
else
21+
# ACR 格式
22+
echo "$REGISTRY/$NAMESPACE/$IMAGE_NAME:$TAG"
23+
fi

0 commit comments

Comments
 (0)