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
- - 使用 BuildKit 构建新镜像
279
+ - 构建新镜像
279
280
  - 推送到 GitLab Container Registry
280
281
  - 打上 commit SHA 和 latest 标签
281
282
  ```
282
283
 
283
- 使用 Docker 缓存层加速构建,大幅减少构建时间。
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
 
@@ -67,7 +67,7 @@ export interface ProjectConfig {
67
67
  name: string;
68
68
  /** 项目类型 */
69
69
  type: ProjectType;
70
- /** Docker Hub 镜像名称 */
70
+ /** Docker 镜像名称(使用 GitLab Container Registry 时自动生成) */
71
71
  dockerImage: string;
72
72
  /** 部署目录 */
73
73
  deployDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
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,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;CACtD;AAID;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clouddreamai-cicd-setup",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "CloudDreamAI GitLab CI/CD 自动配置工具 - 支持 NestJS/Vue/React 项目的一键 CI/CD 配置",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -109,28 +109,18 @@ lint:
109
109
  - main
110
110
  - develop
111
111
 
112
- # 构建阶段(使用 GitLab Container Registry
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
- services:
120
- - name: docker:24.0.5-dind
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
- # 构建阶段(使用 GitLab Container Registry
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
- services:
120
- - name: docker:24.0.5-dind
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
- # 根据Registry类型登录
162
- if [ "$REGISTRY_TYPE" = "gitlab" ]; then
163
- # GitLab Container Registry
164
- if [ -n "$REGISTRY_URL" ] && [ -n "$REGISTRY_USERNAME" ] && [ -n "$REGISTRY_PASSWORD" ]; then
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 "警告:未知的 Registry 类型: $REGISTRY_TYPE,尝试使用 Docker Hub..."
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
- if [ "$REGISTRY_TYPE" = "none" ]; then
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 "错误:未找到Dockerfile,无法本地构建"
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
  # 检查部署状态