fix: Drone 流水线改为自 clone,避免拉取 drone/git 失败
关闭默认 clone,使用预拉的 node:20-bookworm;文档补充 daoCloud 预拉步骤。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
a51d4e10aa
commit
97d73d835b
3 files changed
+27
-18
No files matched your search
+16
-12
@@ -1,6 +1,9 @@
|
||||
# zkxw:仅编译打包,不自动部署测试环境
|
||||
# 触发:push / tag
|
||||
# 产物:artifacts/*.tar.gz(日志打印 sha256)
|
||||
#
|
||||
# 说明:关闭默认 clone(drone/git 在国内难拉),在 node 镜像内 git clone。
|
||||
# 构建镜像优先用已 tag 的 node:20-bookworm(部署时从 daoCloud 预拉)。
|
||||
|
||||
kind: pipeline
|
||||
type: docker
|
||||
@@ -9,6 +12,9 @@ name: build-package
|
||||
concurrency:
|
||||
limit: 1
|
||||
|
||||
clone:
|
||||
disable: true
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
@@ -17,23 +23,21 @@ trigger:
|
||||
steps:
|
||||
- name: build-and-package
|
||||
image: node:20-bookworm
|
||||
environment:
|
||||
GOGS_HTTP: http://101.35.245.122:3000
|
||||
commands:
|
||||
- set -euo pipefail
|
||||
- apt-get update -qq && apt-get install -y -qq git ca-certificates >/dev/null
|
||||
- |
|
||||
BRANCH="${DRONE_SOURCE_BRANCH:-${DRONE_BRANCH:-master}}"
|
||||
echo "[CI] clone $GOGS_HTTP/wuzilong/zkxw.git branch=$BRANCH commit=${DRONE_COMMIT}"
|
||||
git clone --depth 50 --branch "$BRANCH" "$GOGS_HTTP/wuzilong/zkxw.git" .
|
||||
git checkout -q "$DRONE_COMMIT"
|
||||
- mkdir -p artifacts
|
||||
- |
|
||||
echo "[CI] prepare env (tracked .env.docker → .env.test; .env.test is gitignored)"
|
||||
if [ -f web-admin/.env.docker ]; then
|
||||
cp web-admin/.env.docker web-admin/.env.test
|
||||
else
|
||||
echo "missing web-admin/.env.docker" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -f mobile-oa-h5/.env.docker ]; then
|
||||
cp mobile-oa-h5/.env.docker mobile-oa-h5/.env.test
|
||||
else
|
||||
echo "missing mobile-oa-h5/.env.docker" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp web-admin/.env.docker web-admin/.env.test
|
||||
cp mobile-oa-h5/.env.docker mobile-oa-h5/.env.test
|
||||
- |
|
||||
echo "[CI] web-admin pnpm build:test"
|
||||
corepack enable
|
||||
|
||||
@@ -16,6 +16,9 @@ cp .env.example .env
|
||||
# 生成共享密钥
|
||||
sed -i "s/replace-with-openssl-rand-hex-32/$(openssl rand -hex 32)/" .env
|
||||
docker compose pull
|
||||
# 预拉构建镜像(Docker Hub 慢时用 daoCloud,再 tag 成流水线里的名字)
|
||||
docker pull docker.m.daocloud.io/library/node:20-bookworm
|
||||
docker tag docker.m.daocloud.io/library/node:20-bookworm node:20-bookworm
|
||||
docker compose up -d
|
||||
docker compose ps
|
||||
docker logs drone-runner 2>&1 | tail -20
|
||||
@@ -24,6 +27,8 @@ docker logs drone-runner 2>&1 | tail -20
|
||||
|
||||
云安全组 / 主机防火墙放行 **TCP 18080**(本方案默认端口;勿用未放行的 8080)。
|
||||
|
||||
流水线关闭了默认 `drone/git` clone(国内难拉),在 `node:20-bookworm` 内直接 `git clone` 本机 Gogs。
|
||||
|
||||
## 2. 登录与激活仓库
|
||||
|
||||
1. 浏览器打开 `http://101.35.245.122:18080`
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
# cp .env.example .env # 填写 DRONE_RPC_SECRET
|
||||
# docker compose up -d
|
||||
#
|
||||
# 访问:http://101.35.245.122:8080 (用 Gogs 用户名/密码登录)
|
||||
# 访问:http://101.35.245.122:18080 (用 Gogs 用户名/密码登录)
|
||||
# Gogs:http://101.35.245.122:3000
|
||||
# Runner 不对外暴露端口(避免与 Gogs :3000 冲突)
|
||||
#
|
||||
# Runner 不对外暴露端口。构建镜像请预先 docker pull(见 README),
|
||||
# 流水线使用国内可达的 node 镜像,并关闭默认 drone/git clone。
|
||||
|
||||
services:
|
||||
drone:
|
||||
@@ -13,7 +15,7 @@ services:
|
||||
container_name: drone
|
||||
restart: always
|
||||
ports:
|
||||
# 云安全组未放行 8080;18080 已在主机防火墙放行且外网可达
|
||||
# 云安全组未放行 8080;18080 已放行且外网可达
|
||||
- '18080:80'
|
||||
volumes:
|
||||
- drone-data:/data
|
||||
@@ -22,10 +24,9 @@ services:
|
||||
DRONE_GOGS_SERVER: ${DRONE_GOGS_SERVER:-http://101.35.245.122:3000}
|
||||
DRONE_GOGS_SKIP_VERIFY: ${DRONE_GOGS_SKIP_VERIFY:-false}
|
||||
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
|
||||
DRONE_SERVER_HOST: ${DRONE_SERVER_HOST:-101.35.245.122:8080}
|
||||
DRONE_SERVER_HOST: ${DRONE_SERVER_HOST:-101.35.245.122:18080}
|
||||
DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO:-http}
|
||||
DRONE_GIT_ALWAYS_AUTH: ${DRONE_GIT_ALWAYS_AUTH:-false}
|
||||
# 容器访问宿主机 Gogs:把公网 IP 指回宿主机,避免云主机 hairpin 失败
|
||||
extra_hosts:
|
||||
- '101.35.245.122:host-gateway'
|
||||
- 'host.docker.internal:host-gateway'
|
||||
@@ -40,7 +41,6 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
DRONE_RPC_PROTO: ${DRONE_RPC_PROTO:-http}
|
||||
# 同一 compose 网络内走服务名;勿映射 runner:3000
|
||||
DRONE_RPC_HOST: ${DRONE_RPC_HOST:-drone:80}
|
||||
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
|
||||
DRONE_RUNNER_CAPACITY: ${DRONE_RUNNER_CAPACITY:-1}
|
||||
|
||||
Reference in new issue
Block a user