clouddreamai-cicd-setup 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -274,13 +274,20 @@ Vue/React: npm run type-check
|
|
|
274
274
|
#### 2. build - 构建 Docker 镜像(main/develop)
|
|
275
275
|
|
|
276
276
|
```yaml
|
|
277
|
+
- 使用 Docker Socket Binding(复用宿主机 Docker)
|
|
277
278
|
- 拉取最新镜像作为缓存
|
|
278
|
-
-
|
|
279
|
+
- 构建新镜像
|
|
279
280
|
- 推送到 GitLab Container Registry
|
|
280
281
|
- 打上 commit SHA 和 latest 标签
|
|
281
282
|
```
|
|
282
283
|
|
|
283
|
-
|
|
284
|
+
使用宿主机 Docker 和镜像缓存,大幅减少构建时间。
|
|
285
|
+
|
|
286
|
+
**Runner 配置要求**:需要在 `/etc/gitlab-runner/config.toml` 中配置 Docker Socket 挂载:
|
|
287
|
+
```toml
|
|
288
|
+
[runners.docker]
|
|
289
|
+
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
|
|
290
|
+
```
|
|
284
291
|
|
|
285
292
|
#### 3. deploy - 部署到服务器(main/develop)
|
|
286
293
|
|
package/dist/core/types.d.ts
CHANGED
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAID;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -109,28 +109,18 @@ lint:
|
|
|
109
109
|
- main
|
|
110
110
|
- develop
|
|
111
111
|
|
|
112
|
-
# 构建阶段(使用
|
|
112
|
+
# 构建阶段(使用 Docker Socket Binding,复用宿主机 Docker)
|
|
113
113
|
build:
|
|
114
114
|
stage: build
|
|
115
115
|
cache: {}
|
|
116
116
|
image:
|
|
117
117
|
name: docker:24.0.5
|
|
118
118
|
pull_policy: if-not-present
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
variables:
|
|
122
|
-
# 自动继承 Runner 的代理配置(如果存在)
|
|
123
|
-
HTTP_PROXY: ${HTTP_PROXY:-}
|
|
124
|
-
HTTPS_PROXY: ${HTTPS_PROXY:-}
|
|
125
|
-
NO_PROXY: ${NO_PROXY:-localhost,127.0.0.1,docker}
|
|
126
|
-
variables:
|
|
127
|
-
DOCKER_HOST: tcp://docker:2375
|
|
128
|
-
DOCKER_TLS_CERTDIR: ""
|
|
129
|
-
DOCKER_DRIVER: overlay2
|
|
119
|
+
# 不使用 DinD 服务,通过 Socket Binding 使用宿主机 Docker
|
|
120
|
+
# 需要 Runner 配置: volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
|
|
130
121
|
before_script:
|
|
131
122
|
- docker info
|
|
132
123
|
- echo "登录到 GitLab Container Registry..."
|
|
133
|
-
# 使用 GitLab CI 预定义变量登录
|
|
134
124
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
135
125
|
script:
|
|
136
126
|
- echo "尝试拉取最新镜像作为缓存..."
|
|
@@ -138,10 +128,6 @@ build:
|
|
|
138
128
|
- echo "构建Docker镜像..."
|
|
139
129
|
- |
|
|
140
130
|
docker build \
|
|
141
|
-
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
142
|
-
--build-arg HTTP_PROXY=${HTTP_PROXY:-} \
|
|
143
|
-
--build-arg HTTPS_PROXY=${HTTPS_PROXY:-} \
|
|
144
|
-
--build-arg NO_PROXY=${NO_PROXY:-} \
|
|
145
131
|
--cache-from $DOCKER_IMAGE:latest \
|
|
146
132
|
-t $DOCKER_IMAGE:$CI_COMMIT_SHA \
|
|
147
133
|
-t $DOCKER_IMAGE:latest .
|
|
@@ -109,28 +109,18 @@ lint:
|
|
|
109
109
|
- main
|
|
110
110
|
- develop
|
|
111
111
|
|
|
112
|
-
# 构建阶段(使用
|
|
112
|
+
# 构建阶段(使用 Docker Socket Binding,复用宿主机 Docker)
|
|
113
113
|
build:
|
|
114
114
|
stage: build
|
|
115
115
|
cache: {}
|
|
116
116
|
image:
|
|
117
117
|
name: docker:24.0.5
|
|
118
118
|
pull_policy: if-not-present
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
variables:
|
|
122
|
-
# 自动继承 Runner 的代理配置(如果存在)
|
|
123
|
-
HTTP_PROXY: ${HTTP_PROXY:-}
|
|
124
|
-
HTTPS_PROXY: ${HTTPS_PROXY:-}
|
|
125
|
-
NO_PROXY: ${NO_PROXY:-localhost,127.0.0.1,docker}
|
|
126
|
-
variables:
|
|
127
|
-
DOCKER_HOST: tcp://docker:2375
|
|
128
|
-
DOCKER_TLS_CERTDIR: ""
|
|
129
|
-
DOCKER_DRIVER: overlay2
|
|
119
|
+
# 不使用 DinD 服务,通过 Socket Binding 使用宿主机 Docker
|
|
120
|
+
# 需要 Runner 配置: volumes = ["/var/run/docker.sock:/var/run/docker.sock"]
|
|
130
121
|
before_script:
|
|
131
122
|
- docker info
|
|
132
123
|
- echo "登录到 GitLab Container Registry..."
|
|
133
|
-
# 使用 GitLab CI 预定义变量登录
|
|
134
124
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
135
125
|
script:
|
|
136
126
|
- echo "尝试拉取最新镜像作为缓存..."
|
|
@@ -138,10 +128,6 @@ build:
|
|
|
138
128
|
- echo "构建Docker镜像..."
|
|
139
129
|
- |
|
|
140
130
|
docker build \
|
|
141
|
-
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
142
|
-
--build-arg HTTP_PROXY=${HTTP_PROXY:-} \
|
|
143
|
-
--build-arg HTTPS_PROXY=${HTTPS_PROXY:-} \
|
|
144
|
-
--build-arg NO_PROXY=${NO_PROXY:-} \
|
|
145
131
|
--cache-from $DOCKER_IMAGE:latest \
|
|
146
132
|
-t $DOCKER_IMAGE:$CI_COMMIT_SHA \
|
|
147
133
|
-t $DOCKER_IMAGE:latest .
|
|
@@ -9,7 +9,6 @@ set -e
|
|
|
9
9
|
APP_NAME="{{APP_NAME}}"
|
|
10
10
|
DEPLOY_PATH="{{DEPLOY_DIR}}"
|
|
11
11
|
ENV_TYPE=${1:-development}
|
|
12
|
-
REGISTRY_TYPE=${2:-dockerhub} # 镜像仓库类型: gitlab, dockerhub, custom, none
|
|
13
12
|
ENABLE_MIGRATION="{{ENABLE_MIGRATION}}" # 是否启用数据库迁移: true/false
|
|
14
13
|
MIGRATION_COMMAND="{{MIGRATION_COMMAND}}" # 迁移命令,默认 npm run migration:run
|
|
15
14
|
|
|
@@ -158,40 +157,12 @@ fi
|
|
|
158
157
|
# 拉取最新镜像并启动Docker容器
|
|
159
158
|
echo "拉取最新镜像并启动Docker容器..."
|
|
160
159
|
|
|
161
|
-
#
|
|
162
|
-
if [ "$
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
echo "登录 GitLab Container Registry: $REGISTRY_URL"
|
|
166
|
-
echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USERNAME" --password-stdin "$REGISTRY_URL"
|
|
167
|
-
else
|
|
168
|
-
echo "警告:未设置 GitLab Registry 凭据"
|
|
169
|
-
fi
|
|
170
|
-
elif [ "$REGISTRY_TYPE" = "dockerhub" ]; then
|
|
171
|
-
# Docker Hub
|
|
172
|
-
if [ -n "$DOCKER_HUB_USERNAME" ] && [ -n "$DOCKER_HUB_PASSWORD" ]; then
|
|
173
|
-
echo "登录 Docker Hub..."
|
|
174
|
-
echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
|
|
175
|
-
else
|
|
176
|
-
echo "未设置 Docker Hub 凭据,尝试匿名拉取镜像..."
|
|
177
|
-
fi
|
|
178
|
-
elif [ "$REGISTRY_TYPE" = "custom" ]; then
|
|
179
|
-
# 自建 Registry
|
|
180
|
-
if [ -n "$REGISTRY_URL" ] && [ -n "$REGISTRY_USERNAME" ] && [ -n "$REGISTRY_PASSWORD" ]; then
|
|
181
|
-
echo "登录自建 Registry: $REGISTRY_URL"
|
|
182
|
-
echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USERNAME" --password-stdin "$REGISTRY_URL"
|
|
183
|
-
else
|
|
184
|
-
echo "错误:未设置自建 Registry 凭据"
|
|
185
|
-
exit 1
|
|
186
|
-
fi
|
|
187
|
-
elif [ "$REGISTRY_TYPE" = "none" ]; then
|
|
188
|
-
# 不使用 Registry,仅本地构建
|
|
189
|
-
echo "不使用镜像仓库,将使用本地构建..."
|
|
160
|
+
# 登录 GitLab Container Registry
|
|
161
|
+
if [ -n "$REGISTRY_URL" ] && [ -n "$REGISTRY_USERNAME" ] && [ -n "$REGISTRY_PASSWORD" ]; then
|
|
162
|
+
echo "登录 GitLab Container Registry: $REGISTRY_URL"
|
|
163
|
+
echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USERNAME" --password-stdin "$REGISTRY_URL"
|
|
190
164
|
else
|
|
191
|
-
echo "
|
|
192
|
-
if [ -n "$DOCKER_HUB_USERNAME" ] && [ -n "$DOCKER_HUB_PASSWORD" ]; then
|
|
193
|
-
echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
|
|
194
|
-
fi
|
|
165
|
+
echo "警告:未设置 GitLab Registry 凭据,尝试拉取公开镜像..."
|
|
195
166
|
fi
|
|
196
167
|
|
|
197
168
|
# 停止并移除旧容器
|
|
@@ -199,37 +170,22 @@ echo "清理现有容器..."
|
|
|
199
170
|
docker-compose down --remove-orphans || true
|
|
200
171
|
docker container ls -a | grep "$APP_NAME" | awk '{print $1}' | xargs -r docker container rm -f
|
|
201
172
|
|
|
202
|
-
#
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
echo "
|
|
173
|
+
# 拉取镜像并启动容器
|
|
174
|
+
echo "尝试从 GitLab Container Registry 拉取镜像..."
|
|
175
|
+
if docker-compose pull; then
|
|
176
|
+
echo "镜像拉取成功,启动容器..."
|
|
177
|
+
APP_PORT=$APP_PORT docker-compose up -d
|
|
178
|
+
else
|
|
179
|
+
echo "无法拉取镜像,检查是否存在 Dockerfile 进行本地构建..."
|
|
206
180
|
if [ -f "Dockerfile" ]; then
|
|
207
|
-
echo "找到Dockerfile,进行本地构建..."
|
|
181
|
+
echo "找到 Dockerfile,进行本地构建..."
|
|
208
182
|
export DOCKER_IMAGE="$APP_NAME:local"
|
|
209
183
|
docker build -t $DOCKER_IMAGE .
|
|
210
184
|
APP_PORT=$APP_PORT docker-compose up -d
|
|
211
185
|
else
|
|
212
|
-
echo "
|
|
186
|
+
echo "错误:无法拉取镜像且未找到 Dockerfile,部署失败"
|
|
213
187
|
exit 1
|
|
214
188
|
fi
|
|
215
|
-
else
|
|
216
|
-
# 尝试从Registry拉取镜像
|
|
217
|
-
echo "尝试从镜像仓库拉取镜像..."
|
|
218
|
-
if docker-compose pull; then
|
|
219
|
-
echo "镜像拉取成功,启动容器..."
|
|
220
|
-
APP_PORT=$APP_PORT docker-compose up -d
|
|
221
|
-
else
|
|
222
|
-
echo "无法从镜像仓库拉取镜像,检查是否存在Dockerfile进行本地构建..."
|
|
223
|
-
if [ -f "Dockerfile" ]; then
|
|
224
|
-
echo "找到Dockerfile,进行本地构建..."
|
|
225
|
-
export DOCKER_IMAGE="$APP_NAME:local"
|
|
226
|
-
docker build -t $DOCKER_IMAGE .
|
|
227
|
-
APP_PORT=$APP_PORT docker-compose up -d
|
|
228
|
-
else
|
|
229
|
-
echo "错误:无法拉取镜像且未找到Dockerfile,部署失败"
|
|
230
|
-
exit 1
|
|
231
|
-
fi
|
|
232
|
-
fi
|
|
233
189
|
fi
|
|
234
190
|
|
|
235
191
|
# 检查部署状态
|