clouddreamai-cicd-setup 1.5.2 → 1.5.4
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/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 .
|
|
@@ -165,7 +151,7 @@ deploy_dev:
|
|
|
165
151
|
APP_PORT: "{{DEV_PORT}}"
|
|
166
152
|
cache: {}
|
|
167
153
|
before_script:
|
|
168
|
-
- apk add --no-cache sshpass bash openssl rsync
|
|
154
|
+
- apk add --no-cache sshpass bash openssl rsync openssh-client
|
|
169
155
|
- mkdir -p ~/.ssh
|
|
170
156
|
- chmod 700 ~/.ssh
|
|
171
157
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
@@ -196,7 +182,7 @@ deploy_prod:
|
|
|
196
182
|
APP_PORT: "{{PROD_PORT}}"
|
|
197
183
|
cache: {}
|
|
198
184
|
before_script:
|
|
199
|
-
- apk add --no-cache sshpass bash openssl rsync
|
|
185
|
+
- apk add --no-cache sshpass bash openssl rsync openssh-client
|
|
200
186
|
- mkdir -p ~/.ssh
|
|
201
187
|
- chmod 700 ~/.ssh
|
|
202
188
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
@@ -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 .
|
|
@@ -165,7 +151,7 @@ deploy_dev:
|
|
|
165
151
|
APP_PORT: "{{DEV_PORT}}"
|
|
166
152
|
cache: {}
|
|
167
153
|
before_script:
|
|
168
|
-
- apk add --no-cache sshpass bash openssl rsync
|
|
154
|
+
- apk add --no-cache sshpass bash openssl rsync openssh-client
|
|
169
155
|
- mkdir -p ~/.ssh
|
|
170
156
|
- chmod 700 ~/.ssh
|
|
171
157
|
# 使用密码认证,跳过 SSH 主机密钥检查
|
|
@@ -196,7 +182,7 @@ deploy_prod:
|
|
|
196
182
|
APP_PORT: "{{PROD_PORT}}"
|
|
197
183
|
cache: {}
|
|
198
184
|
before_script:
|
|
199
|
-
- apk add --no-cache sshpass bash openssl rsync
|
|
185
|
+
- apk add --no-cache sshpass bash openssl rsync openssh-client
|
|
200
186
|
- mkdir -p ~/.ssh
|
|
201
187
|
- chmod 700 ~/.ssh
|
|
202
188
|
# 使用密码认证,跳过 SSH 主机密钥检查
|