Skip to content

Commit

Permalink
Merge pull request #76 from codefuse-ai/workflow_image
Browse files Browse the repository at this point in the history
Workflow image
  • Loading branch information
goaheand authored Nov 12, 2024
2 parents 3f2198d + 7bb5516 commit 27d8265
Show file tree
Hide file tree
Showing 6 changed files with 170 additions and 101 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/docker-image-pull.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Docker Image CI Pull

on:
workflow_dispatch: # 允许手动触发工作流

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
architecture: [amd64, arm64]
os: [linux]
service: [runtime:0.1.0, ekgservice:0.1.0, ekgfrontend:0.1.0]

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Buildx
uses: docker/setup-buildx-action@v1

- name: Build the Docker image
run: |
# 登录阿里云镜像仓库
docker login --username=${{ secrets.ALIYUN_USERNAME }} --password=${{ secrets.ALIYUN_PASSWORD }} registry.cn-hangzhou.aliyuncs.com
# 使用Dockerfile构建镜像
docker pull --platform ${{ matrix.os }}/${{ matrix.architecture }} ghcr.io/codefuse-ai/${{ matrix.service }}
docker tag ghcr.io/codefuse-ai/${{ matrix.service }} registry.cn-hangzhou.aliyuncs.com/muagent/${{ matrix.service }}-${{ matrix.architecture }}
docker push registry.cn-hangzhou.aliyuncs.com/muagent/${{ matrix.service }}-${{ matrix.architecture }}
149 changes: 126 additions & 23 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,29 @@
name: Docker Image CI

on:
workflow_dispatch: # 允许手动触发工作流

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04 # 或者指定其他版本
strategy:
matrix:
architecture: [amd64, arm64]
image:
- name: runtime
context: ./runtime
dockerfile: ./runtime/Dockerfile.no-package
tag: ghcr.io/codefuse-ai/runtime:0.1.0
tag_latest: ghcr.io/codefuse-ai/runtime:latest
- name: ekgfrontend
context: .
dockerfile: ./Dockerfile_frontend
tag: ghcr.io/codefuse-ai/ekgfrontend:0.1.0
tag_latest: ghcr.io/codefuse-ai/ekgfrontend:latest
- name: ekgservice
context: .
dockerfile: ./Dockerfile_gh
tag: ghcr.io/codefuse-ai/ekgservice:0.1.0
tag_latest: ghcr.io/codefuse-ai/ekgservice:latest

steps:
- name: Checkout code
Expand All @@ -26,26 +42,113 @@ jobs:
username: ${{ github.actor }} # 使用当前 GitHub 用户名
password: ${{ secrets.CR_TOKEN }} # 使用您刚刚添加的个人访问令牌

- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile_frontend
push: true
tags: ghcr.io/codefuse-ai/ekgfrontend:0.1.0
- name: Build and push with retry for amd64
run: |
max_retries=5
count=0
success=false
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ghcr.io/codefuse-ai/ekgservice:0.1.0
while [[ $count -lt $max_retries ]]; do
echo "Attempt $(($count + 1)) of $max_retries..."
docker build --push \
--platform linux/amd64 \
--tag ${{ matrix.image.tag }}-amd64 \
--tag ${{ matrix.image.tag_latest }}-amd64 \
-f ${{ matrix.image.dockerfile }} ${{ matrix.image.context }} && success=true && break
count=$(($count + 1))
echo "Build failed, retrying in 5 seconds..."
sleep 15
done
- name: Build and push
uses: docker/build-push-action@v2
with:
context: ./runtime
file: Dockerfile.no-package
push: true
tags: ghcr.io/codefuse-ai/runtime:0.1.0
if [ "$success" = false ]; then
echo "Build failed after $max_retries attempts."
exit 1
fi
- name: docker image for amd64
run: |
df -h
docker images
docker rmi ${{ matrix.image.tag }}-amd64
docker rmi ${{ matrix.image.tag_latest }}-amd64
df -h
docker images
- name: Build and push with retry for arm64
run: |
max_retries=5
count=0
success=false
while [[ $count -lt $max_retries ]]; do
echo "Attempt $(($count + 1)) of $max_retries..."
docker build --push \
--platform linux/arm64 \
--tag ${{ matrix.image.tag }}-arm64 \
--tag ${{ matrix.image.tag_latest }}-arm64 \
-f ${{ matrix.image.dockerfile }} ${{ matrix.image.context }} && success=true && break
count=$(($count + 1))
echo "Build failed, retrying in 5 seconds..."
sleep 15
done
if [ "$success" = false ]; then
echo "Build failed after $max_retries attempts."
exit 1
fi
- name: docker image for arm64
run: |
df -h
docker images
docker rmi ${{ matrix.image.tag }}-arm64
docker rmi ${{ matrix.image.tag_latest }}-arm64
df -h
docker images
- name: docker manifest
run: |
docker images
docker manifest create ${{ matrix.image.tag }} ${{ matrix.image.tag }}-arm64 ${{ matrix.image.tag }}-amd64
docker manifest create ${{ matrix.image.tag_latest }} ${{ matrix.image.tag_latest }}-arm64 ${{ matrix.image.tag_latest }}-amd64
docker manifest inspect ${{ matrix.image.tag }}
docker manifest inspect ${{ matrix.image.tag_latest }}
docker manifest push ${{ matrix.image.tag }}
docker manifest push ${{ matrix.image.tag_latest }}
- name: Check disk space
run: df -h

# - name: docker image
# run: |
# docker images
# docker pull --platform linux/arm64 python:3.9-slim-bookworm
# docker tag python:3.9-slim-bookworm ghcr.io/lightislost/python:3.9-slim-bookworm-arm64
# docker rmi python:3.9-slim-bookworm
# docker push ghcr.io/lightislost/python:3.9-slim-bookworm-arm64
# docker images

# - name: docker image
# run: |
# docker images
# docker pull --platform linux/amd64 python:3.9-slim-bookworm
# docker tag python:3.9-slim-bookworm ghcr.io/lightislost/python:3.9-slim-bookworm-amd64
# docker rmi python:3.9-slim-bookworm
# docker push ghcr.io/lightislost/python:3.9-slim-bookworm-amd64
# docker images
# docker manifest create ghcr.io/lightislost/python:3.9-slim-bookworm ghcr.io/lightislost/python:3.9-slim-bookworm-arm64 ghcr.io/lightislost/python:3.9-slim-bookworm-amd64
# docker manifest inspect ghcr.io/lightislost/python:3.9-slim-bookworm

# - name: Build and push adm64
# uses: docker/build-push-action@v2
# with:
# context: ${{ matrix.image.context }}
# file: ${{ matrix.image.dockerfile }}
# push: true
# tags: ${{ matrix.image.tag }}-amd64
# platforms: linux/amd64
76 changes: 0 additions & 76 deletions .github/workflows/test.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.9-bookworm
FROM python:3.9-slim-bookworm

WORKDIR /home/user

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile_frontend
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From node:20.18.0-bookworm
FROM node:20.18.0-bookworm

WORKDIR /home/user

Expand Down
9 changes: 9 additions & 0 deletions Dockerfile_gh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM python:3.9-slim-bookworm

WORKDIR /home/user

COPY ./requirements.txt /home/user/docker_requirements.txt

RUN pip install -r /home/user/docker_requirements.txt --retries 5 --timeout 120

CMD ["bash"]

0 comments on commit 27d8265

Please sign in to comment.