@lakutata/cli 1.0.31 → 1.0.33
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/build/Deploy.js +46 -9
- package/build/Deploy.js.map +1 -1
- package/package.json +1 -1
- package/src/Deploy.ts +37 -8
package/build/Deploy.js
CHANGED
|
@@ -2,19 +2,38 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
(async () => {
|
|
4
4
|
const path = require('path');
|
|
5
|
+
const fs = require('fs');
|
|
5
6
|
const args = require('args');
|
|
6
7
|
const inquirer = require('inquirer');
|
|
7
8
|
const shelljs = require('shelljs');
|
|
8
9
|
const moment = require('moment-timezone');
|
|
9
10
|
const packageJson = require(path.resolve(process.cwd(), './package.json'));
|
|
11
|
+
const deployResultFilename = path.resolve(process.cwd(), './node_modules/.lakutata_deploy_result');
|
|
10
12
|
args
|
|
11
13
|
.option('dockerfile', 'Dockerfile文件路径', './Dockerfile')
|
|
12
14
|
.option('repository', '镜像仓库地址')
|
|
13
15
|
.option('username', '镜像仓库用户名')
|
|
14
16
|
.option('password', '镜像仓库密码')
|
|
15
17
|
.option('platform', '构建平台')
|
|
16
|
-
.option('tagLatest', '是否为镜像打上latest的标签')
|
|
18
|
+
.option('tagLatest', '是否为镜像打上latest的标签')
|
|
19
|
+
.option('mode', '运行模式(exec=执行部署,result=查看部署结果)', 'exec');
|
|
17
20
|
const flags = args.parse(process.argv);
|
|
21
|
+
if (flags.mode === 'result') {
|
|
22
|
+
if (!fs.existsSync(deployResultFilename)) {
|
|
23
|
+
console.error('未执行部署,无法查看部署结果');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const deployResult = fs.readFileSync(deployResultFilename).toString();
|
|
27
|
+
if (!deployResult) {
|
|
28
|
+
console.error('未部署成功,无法查看部署结果');
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
console.log(deployResult);
|
|
32
|
+
return process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
fs.writeFileSync(deployResultFilename, '', { flag: 'w' });
|
|
36
|
+
}
|
|
18
37
|
const REGISTRY_ADDR = flags.repository;
|
|
19
38
|
const DOCKERFILE_PATH = flags.dockerfile;
|
|
20
39
|
const REPOSITORY_ADDR = new URL(`repo://${REGISTRY_ADDR}`).hostname;
|
|
@@ -70,23 +89,41 @@
|
|
|
70
89
|
}
|
|
71
90
|
try {
|
|
72
91
|
await execPromise(`docker login --username=${username} ${REPOSITORY_ADDR} -p${password}`);
|
|
73
|
-
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`);
|
|
74
|
-
|
|
92
|
+
const buildXResult = shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`);
|
|
93
|
+
if (buildXResult.code)
|
|
94
|
+
return process.exit(buildXResult.code);
|
|
95
|
+
const tagVersionResult = shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
96
|
+
if (tagVersionResult.code)
|
|
97
|
+
return process.exit(tagVersionResult.code);
|
|
75
98
|
if (tagLatest) {
|
|
76
|
-
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`);
|
|
99
|
+
const tagLatestResult = shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`);
|
|
100
|
+
if (tagLatestResult.code)
|
|
101
|
+
return process.exit(tagLatestResult.code);
|
|
77
102
|
}
|
|
78
|
-
shelljs.exec(`docker push ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
103
|
+
const pushVersionResult = shelljs.exec(`docker push ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
104
|
+
if (pushVersionResult.code)
|
|
105
|
+
return process.exit(pushVersionResult.code);
|
|
79
106
|
if (tagLatest) {
|
|
80
|
-
shelljs.exec(`docker push ${REGISTRY_ADDR}:latest`);
|
|
107
|
+
const pushLatestResult = shelljs.exec(`docker push ${REGISTRY_ADDR}:latest`);
|
|
108
|
+
if (pushLatestResult.code)
|
|
109
|
+
return process.exit(pushLatestResult.code);
|
|
81
110
|
}
|
|
82
|
-
shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
111
|
+
const removeVersionImageResult = shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
112
|
+
if (removeVersionImageResult.code)
|
|
113
|
+
return process.exit(removeVersionImageResult.code);
|
|
83
114
|
if (tagLatest) {
|
|
84
|
-
shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:latest`);
|
|
115
|
+
const removeLatestImageResult = shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:latest`);
|
|
116
|
+
if (removeLatestImageResult.code)
|
|
117
|
+
return process.exit(removeLatestImageResult.code);
|
|
85
118
|
}
|
|
86
|
-
shelljs.exec(`docker rmi -f ${IMAGE_BASE_NAME}:${IMAGE_VERSION}`);
|
|
119
|
+
const cleanImageResult = shelljs.exec(`docker rmi -f ${IMAGE_BASE_NAME}:${IMAGE_VERSION}`);
|
|
120
|
+
if (cleanImageResult.code)
|
|
121
|
+
return process.exit(cleanImageResult.code);
|
|
122
|
+
fs.writeFileSync(deployResultFilename, `${REGISTRY_ADDR}:${IMAGE_VERSION}`, { flag: 'w' });
|
|
87
123
|
}
|
|
88
124
|
catch (e) {
|
|
89
125
|
console.error(e.message);
|
|
126
|
+
process.exit(1);
|
|
90
127
|
}
|
|
91
128
|
})();
|
|
92
129
|
//# sourceMappingURL=Deploy.js.map
|
package/build/Deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Deploy.js","sourceRoot":"","sources":["../src/Deploy.ts"],"names":[],"mappings":";;AACA,CAAC,KAAK,IAAI,EAAE;IACR,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC1E,IAAI;SACC,MAAM,CAAC,YAAY,EAAE,gBAAgB,EAAE,cAAc,CAAC;SACtD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC;SAC9B,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;SAC7B,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;SAC5B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;SAC1B,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Deploy.js","sourceRoot":"","sources":["../src/Deploy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Deploy.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
(async () => {
|
|
3
3
|
const path = require('path')
|
|
4
|
+
const fs = require('fs')
|
|
4
5
|
const args = require('args')
|
|
5
6
|
const inquirer = require('inquirer')
|
|
6
7
|
const shelljs = require('shelljs')
|
|
7
8
|
const moment = require('moment-timezone')
|
|
8
9
|
const packageJson = require(path.resolve(process.cwd(), './package.json'))
|
|
10
|
+
const deployResultFilename = path.resolve(process.cwd(), './node_modules/.lakutata_deploy_result')
|
|
9
11
|
args
|
|
10
12
|
.option('dockerfile', 'Dockerfile文件路径', './Dockerfile')
|
|
11
13
|
.option('repository', '镜像仓库地址')
|
|
@@ -13,7 +15,24 @@
|
|
|
13
15
|
.option('password', '镜像仓库密码')
|
|
14
16
|
.option('platform', '构建平台')
|
|
15
17
|
.option('tagLatest', '是否为镜像打上latest的标签')
|
|
18
|
+
.option('mode', '运行模式(exec=执行部署,result=查看部署结果)', 'exec')
|
|
16
19
|
const flags = args.parse(process.argv)
|
|
20
|
+
if (flags.mode === 'result') {
|
|
21
|
+
//查看部署的结果
|
|
22
|
+
if (!fs.existsSync(deployResultFilename)) {
|
|
23
|
+
console.error('未执行部署,无法查看部署结果')
|
|
24
|
+
process.exit(1)
|
|
25
|
+
}
|
|
26
|
+
const deployResult = fs.readFileSync(deployResultFilename).toString()
|
|
27
|
+
if (!deployResult) {
|
|
28
|
+
console.error('未部署成功,无法查看部署结果')
|
|
29
|
+
process.exit(1)
|
|
30
|
+
}
|
|
31
|
+
console.log(deployResult)
|
|
32
|
+
return process.exit(0)
|
|
33
|
+
} else {
|
|
34
|
+
fs.writeFileSync(deployResultFilename, '', {flag: 'w'})//创建文件,若文件已存在则清空之前的部署结果
|
|
35
|
+
}
|
|
17
36
|
const REGISTRY_ADDR = flags.repository
|
|
18
37
|
const DOCKERFILE_PATH = flags.dockerfile
|
|
19
38
|
const REPOSITORY_ADDR = new URL(`repo://${REGISTRY_ADDR}`).hostname
|
|
@@ -75,21 +94,31 @@
|
|
|
75
94
|
}
|
|
76
95
|
try {
|
|
77
96
|
await execPromise(`docker login --username=${username} ${REPOSITORY_ADDR} -p${password}`)
|
|
78
|
-
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`)
|
|
79
|
-
|
|
97
|
+
const buildXResult = shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`)
|
|
98
|
+
if (buildXResult.code) return process.exit(buildXResult.code)
|
|
99
|
+
const tagVersionResult = shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
100
|
+
if (tagVersionResult.code) return process.exit(tagVersionResult.code)
|
|
80
101
|
if (tagLatest) {
|
|
81
|
-
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`)
|
|
102
|
+
const tagLatestResult = shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`)
|
|
103
|
+
if (tagLatestResult.code) return process.exit(tagLatestResult.code)
|
|
82
104
|
}
|
|
83
|
-
shelljs.exec(`docker push ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
105
|
+
const pushVersionResult = shelljs.exec(`docker push ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
106
|
+
if (pushVersionResult.code) return process.exit(pushVersionResult.code)
|
|
84
107
|
if (tagLatest) {
|
|
85
|
-
shelljs.exec(`docker push ${REGISTRY_ADDR}:latest`)
|
|
108
|
+
const pushLatestResult = shelljs.exec(`docker push ${REGISTRY_ADDR}:latest`)
|
|
109
|
+
if (pushLatestResult.code) return process.exit(pushLatestResult.code)
|
|
86
110
|
}
|
|
87
|
-
shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
111
|
+
const removeVersionImageResult = shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
112
|
+
if (removeVersionImageResult.code) return process.exit(removeVersionImageResult.code)
|
|
88
113
|
if (tagLatest) {
|
|
89
|
-
shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:latest`)
|
|
114
|
+
const removeLatestImageResult = shelljs.exec(`docker rmi -f ${REGISTRY_ADDR}:latest`)
|
|
115
|
+
if (removeLatestImageResult.code) return process.exit(removeLatestImageResult.code)
|
|
90
116
|
}
|
|
91
|
-
shelljs.exec(`docker rmi -f ${IMAGE_BASE_NAME}:${IMAGE_VERSION}`)
|
|
117
|
+
const cleanImageResult = shelljs.exec(`docker rmi -f ${IMAGE_BASE_NAME}:${IMAGE_VERSION}`)
|
|
118
|
+
if (cleanImageResult.code) return process.exit(cleanImageResult.code)
|
|
119
|
+
fs.writeFileSync(deployResultFilename, `${REGISTRY_ADDR}:${IMAGE_VERSION}`, {flag: 'w'})//将部署结果写入结果文件中
|
|
92
120
|
} catch (e) {
|
|
93
121
|
console.error((e as Error).message)
|
|
122
|
+
process.exit(1)
|
|
94
123
|
}
|
|
95
124
|
})()
|