mirror of
https://github.com/YFGaia/dify-plus.git
synced 2026-06-04 10:14:00 +08:00
232 lines
6.9 KiB
YAML
232 lines
6.9 KiB
YAML
# .gitlab-ci.yml
|
|
# 构建并推送API、Web、Admin-Server、Admin-Web镜像到腾讯云容器镜像服务
|
|
|
|
stages:
|
|
- build
|
|
- manifest
|
|
|
|
variables:
|
|
DOCKER_REGISTRY: ccr.ccs.tencentyun.com
|
|
DIFY_WEB_IMAGE_NAME: ${DOCKER_REGISTRY}/yfgaia/dify-plus-web
|
|
DIFY_API_IMAGE_NAME: ${DOCKER_REGISTRY}/yfgaia/dify-plus-api
|
|
ADMIN_WEB_IMAGE_NAME: ${DOCKER_REGISTRY}/yfgaia/dify-plus-admin-web
|
|
ADMIN_SERVER_IMAGE_NAME: ${DOCKER_REGISTRY}/yfgaia/dify-plus-admin-server
|
|
|
|
# 只有在打tag时触发
|
|
workflow:
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
when: always
|
|
- when: never
|
|
|
|
default:
|
|
before_script:
|
|
- docker login ${DOCKER_REGISTRY} -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}
|
|
|
|
# 构建API镜像 - AMD64
|
|
build-api-amd64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/amd64"
|
|
image_name=$DIFY_API_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-amd64"
|
|
docker build \
|
|
--platform $platform \
|
|
--build-arg COMMIT_SHA=$CI_COMMIT_SHA \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-amd64 \
|
|
-f api/Dockerfile api
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-amd64
|
|
echo $image_name:$platform_tag >> manifest_api.txt
|
|
|
|
# 构建API镜像 - ARM64
|
|
build-api-arm64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/arm64"
|
|
image_name=$DIFY_API_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-arm64"
|
|
docker build \
|
|
--platform $platform \
|
|
--build-arg COMMIT_SHA=$CI_COMMIT_SHA \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-arm64 \
|
|
-f api/Dockerfile api
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-arm64
|
|
echo $image_name:$platform_tag >> manifest_api.txt
|
|
|
|
# 构建Web镜像 - AMD64
|
|
build-web-amd64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/amd64"
|
|
image_name=$DIFY_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-amd64"
|
|
docker build \
|
|
--platform $platform \
|
|
--build-arg COMMIT_SHA=$CI_COMMIT_SHA \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-amd64 \
|
|
-f web/Dockerfile web
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-amd64
|
|
echo $image_name:$platform_tag >> manifest_web.txt
|
|
|
|
# 构建Web镜像 - ARM64
|
|
build-web-arm64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/arm64"
|
|
image_name=$DIFY_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-arm64"
|
|
docker build \
|
|
--platform $platform \
|
|
--build-arg COMMIT_SHA=$CI_COMMIT_SHA \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-arm64 \
|
|
-f web/Dockerfile web
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-arm64
|
|
echo $image_name:$platform_tag >> manifest_web.txt
|
|
|
|
# 构建Admin Server镜像 - AMD64
|
|
build-admin-server-amd64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/amd64"
|
|
image_name=$ADMIN_SERVER_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-amd64"
|
|
docker build \
|
|
--platform $platform \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-amd64 \
|
|
-f admin/server/Dockerfile admin/server
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-amd64
|
|
echo $image_name:$platform_tag >> manifest_admin_server.txt
|
|
|
|
# 构建Admin Server镜像 - ARM64
|
|
build-admin-server-arm64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/arm64"
|
|
image_name=$ADMIN_SERVER_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-arm64"
|
|
docker build \
|
|
--platform $platform \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-arm64 \
|
|
-f admin/server/Dockerfile admin/server
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-arm64
|
|
echo $image_name:$platform_tag >> manifest_admin_server.txt
|
|
|
|
# 构建Admin Web镜像 - AMD64
|
|
build-admin-web-amd64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/amd64"
|
|
image_name=$ADMIN_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-amd64"
|
|
docker build \
|
|
--platform $platform \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-amd64 \
|
|
-f admin/web/Dockerfile admin/web
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-amd64
|
|
echo $image_name:$platform_tag >> manifest_admin_web.txt
|
|
|
|
# 构建Admin Web镜像 - ARM64
|
|
build-admin-web-arm64:
|
|
stage: build
|
|
script:
|
|
- |
|
|
platform="linux/arm64"
|
|
image_name=$ADMIN_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
platform_tag="$tag-arm64"
|
|
docker build \
|
|
--platform $platform \
|
|
--tag $image_name:$platform_tag \
|
|
--tag $image_name:$CI_COMMIT_SHA-arm64 \
|
|
-f admin/web/Dockerfile admin/web
|
|
docker push $image_name:$platform_tag
|
|
docker push $image_name:$CI_COMMIT_SHA-arm64
|
|
echo $image_name:$platform_tag >> manifest_admin_web.txt
|
|
|
|
# 创建API多架构清单
|
|
create-manifest-api:
|
|
stage: manifest
|
|
needs:
|
|
- build-api-amd64
|
|
- build-api-arm64
|
|
script:
|
|
- |
|
|
image_name=$DIFY_API_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
docker manifest create $image_name:$tag $(cat manifest_api.txt)
|
|
docker manifest create $image_name:latest $(cat manifest_api.txt)
|
|
docker manifest push $image_name:$tag
|
|
docker manifest push $image_name:latest
|
|
|
|
# 创建Web多架构清单
|
|
create-manifest-web:
|
|
stage: manifest
|
|
needs:
|
|
- build-web-amd64
|
|
- build-web-arm64
|
|
script:
|
|
- |
|
|
image_name=$DIFY_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
docker manifest create $image_name:$tag $(cat manifest_web.txt)
|
|
docker manifest create $image_name:latest $(cat manifest_web.txt)
|
|
docker manifest push $image_name:$tag
|
|
docker manifest push $image_name:latest
|
|
|
|
# 创建Admin Server多架构清单
|
|
create-manifest-admin-server:
|
|
stage: manifest
|
|
needs:
|
|
- build-admin-server-amd64
|
|
- build-admin-server-arm64
|
|
script:
|
|
- |
|
|
image_name=$ADMIN_SERVER_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
docker manifest create $image_name:$tag $(cat manifest_admin_server.txt)
|
|
docker manifest create $image_name:latest $(cat manifest_admin_server.txt)
|
|
docker manifest push $image_name:$tag
|
|
docker manifest push $image_name:latest
|
|
|
|
# 创建Admin Web多架构清单
|
|
create-manifest-admin-web:
|
|
stage: manifest
|
|
needs:
|
|
- build-admin-web-amd64
|
|
- build-admin-web-arm64
|
|
script:
|
|
- |
|
|
image_name=$ADMIN_WEB_IMAGE_NAME
|
|
tag=$CI_COMMIT_TAG
|
|
docker manifest create $image_name:$tag $(cat manifest_admin_web.txt)
|
|
docker manifest create $image_name:latest $(cat manifest_admin_web.txt)
|
|
docker manifest push $image_name:$tag
|
|
docker manifest push $image_name:latest |