@lakutata/cli 1.0.23 → 1.0.26
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 +13 -10
- package/build/Deploy.js.map +1 -1
- package/build/lib/manipulators/CreateDockerFileManipulator.js +2 -2
- package/build/lib/manipulators/CreateDockerFileManipulator.js.map +1 -1
- package/package.json +1 -1
- package/src/Deploy.ts +12 -10
- package/src/lib/manipulators/CreateDockerFileManipulator.ts +2 -2
package/build/Deploy.js
CHANGED
|
@@ -7,18 +7,21 @@
|
|
|
7
7
|
const shelljs = require('shelljs');
|
|
8
8
|
const moment = require('moment-timezone');
|
|
9
9
|
const packageJson = require(path.resolve(process.cwd(), './package.json'));
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
args
|
|
11
|
+
.option('dockerfile', 'Dockerfile文件路径', './Dockerfile')
|
|
12
|
+
.option('repository', '镜像仓库地址')
|
|
13
|
+
.option('username', '镜像仓库用户名')
|
|
14
|
+
.option('password', '镜像仓库密码')
|
|
15
|
+
.option('platform', '构建平台')
|
|
16
|
+
.option('tagLatest', '是否为镜像打上latest的标签');
|
|
17
|
+
const flags = args.parse(process.argv);
|
|
18
|
+
const REGISTRY_ADDR = flags.repository;
|
|
19
|
+
const DOCKERFILE_PATH = flags.dockerfile;
|
|
13
20
|
const REPOSITORY_ADDR = new URL(`repo://${REGISTRY_ADDR}`).hostname;
|
|
21
|
+
if (!DOCKERFILE_PATH)
|
|
22
|
+
throw new Error('未指定Dockerfile文件路径');
|
|
14
23
|
if (!REGISTRY_ADDR)
|
|
15
24
|
throw new Error('未配置仓库地址');
|
|
16
|
-
args
|
|
17
|
-
.option('username')
|
|
18
|
-
.option('password')
|
|
19
|
-
.option('platform')
|
|
20
|
-
.option('tagLatest');
|
|
21
|
-
const flags = args.parse(process.argv);
|
|
22
25
|
const TIMESTAMP = Date.now();
|
|
23
26
|
const IMAGE_BASE_NAME = `lakutata_tmp_image_${TIMESTAMP}`;
|
|
24
27
|
const IMAGE_VERSION = `${packageJson.version}-build.${moment().format('YYYYMMDDHHmmss')}`;
|
|
@@ -67,7 +70,7 @@
|
|
|
67
70
|
}
|
|
68
71
|
try {
|
|
69
72
|
await execPromise(`docker login --username=${username} ${REPOSITORY_ADDR} -p${password}`);
|
|
70
|
-
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform}
|
|
73
|
+
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`);
|
|
71
74
|
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:${IMAGE_VERSION}`);
|
|
72
75
|
if (tagLatest) {
|
|
73
76
|
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`);
|
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,MAAM,
|
|
1
|
+
{"version":3,"file":"Deploy.js","sourceRoot":"","sources":["../src/Deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ async function CreateDockerFileManipulator(projectPath, tsConfigFilePath, direct
|
|
|
72
72
|
const dockerfiles = {};
|
|
73
73
|
if (productionRepository) {
|
|
74
74
|
dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, 'node', mainEntry);
|
|
75
|
-
packageJson.scripts.deploy = `lakutata-deploy ./Dockerfile ${productionRepository}`;
|
|
75
|
+
packageJson.scripts.deploy = `lakutata-deploy --dockerfile ./Dockerfile --repository ${productionRepository}`;
|
|
76
76
|
}
|
|
77
77
|
if (((_b = packageJson === null || packageJson === void 0 ? void 0 : packageJson.scripts) === null || _b === void 0 ? void 0 : _b.test) && developmentRepository) {
|
|
78
78
|
const testScriptString = packageJson.scripts.test;
|
|
@@ -103,7 +103,7 @@ async function CreateDockerFileManipulator(projectPath, tsConfigFilePath, direct
|
|
|
103
103
|
}
|
|
104
104
|
if (testEntryPoint && runtime) {
|
|
105
105
|
dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, runtime, testEntryPoint);
|
|
106
|
-
packageJson.scripts['deploy:dev'] = `lakutata-deploy ./DockerfileDev ${developmentRepository}`;
|
|
106
|
+
packageJson.scripts['deploy:dev'] = `lakutata-deploy --dockerfile ./DockerfileDev --repository ${developmentRepository}`;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
for (const dockerfileName of Object.keys(dockerfiles)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDockerFileManipulator.js","sourceRoot":"","sources":["../../../src/lib/manipulators/CreateDockerFileManipulator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CreateDockerFileManipulator.js","sourceRoot":"","sources":["../../../src/lib/manipulators/CreateDockerFileManipulator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Deploy.ts
CHANGED
|
@@ -6,17 +6,19 @@
|
|
|
6
6
|
const shelljs = require('shelljs')
|
|
7
7
|
const moment = require('moment-timezone')
|
|
8
8
|
const packageJson = require(path.resolve(process.cwd(), './package.json'))
|
|
9
|
-
const argvLen = process.argv.length
|
|
10
|
-
const REGISTRY_ADDR = process.argv[argvLen - 1]
|
|
11
|
-
const DOCKERFILE_PATH = process.argv[argvLen - 2]
|
|
12
|
-
const REPOSITORY_ADDR = new URL(`repo://${REGISTRY_ADDR}`).hostname
|
|
13
|
-
if (!REGISTRY_ADDR) throw new Error('未配置仓库地址')
|
|
14
9
|
args
|
|
15
|
-
.option('
|
|
16
|
-
.option('
|
|
17
|
-
.option('
|
|
18
|
-
.option('
|
|
10
|
+
.option('dockerfile', 'Dockerfile文件路径', './Dockerfile')
|
|
11
|
+
.option('repository', '镜像仓库地址')
|
|
12
|
+
.option('username', '镜像仓库用户名')
|
|
13
|
+
.option('password', '镜像仓库密码')
|
|
14
|
+
.option('platform', '构建平台')
|
|
15
|
+
.option('tagLatest', '是否为镜像打上latest的标签')
|
|
19
16
|
const flags = args.parse(process.argv)
|
|
17
|
+
const REGISTRY_ADDR = flags.repository
|
|
18
|
+
const DOCKERFILE_PATH = flags.dockerfile
|
|
19
|
+
const REPOSITORY_ADDR = new URL(`repo://${REGISTRY_ADDR}`).hostname
|
|
20
|
+
if (!DOCKERFILE_PATH) throw new Error('未指定Dockerfile文件路径')
|
|
21
|
+
if (!REGISTRY_ADDR) throw new Error('未配置仓库地址')
|
|
20
22
|
const TIMESTAMP = Date.now()
|
|
21
23
|
const IMAGE_BASE_NAME = `lakutata_tmp_image_${TIMESTAMP}`
|
|
22
24
|
const IMAGE_VERSION = `${packageJson.version}-build.${moment().format('YYYYMMDDHHmmss')}`
|
|
@@ -73,7 +75,7 @@
|
|
|
73
75
|
}
|
|
74
76
|
try {
|
|
75
77
|
await execPromise(`docker login --username=${username} ${REPOSITORY_ADDR} -p${password}`)
|
|
76
|
-
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform}
|
|
78
|
+
shelljs.exec(`docker buildx build -f ${DOCKERFILE_PATH} -t ${IMAGE_BASE_NAME}:${IMAGE_VERSION} --platform=${platform} . --load`)
|
|
77
79
|
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:${IMAGE_VERSION}`)
|
|
78
80
|
if (tagLatest) {
|
|
79
81
|
shelljs.exec(`docker tag ${IMAGE_BASE_NAME}:${IMAGE_VERSION} ${REGISTRY_ADDR}:latest`)
|
|
@@ -72,7 +72,7 @@ export async function CreateDockerFileManipulator(projectPath: string, tsConfigF
|
|
|
72
72
|
const dockerfiles: { [key: string]: string } = {}
|
|
73
73
|
if (productionRepository) {
|
|
74
74
|
dockerfiles.Dockerfile = generateDockerfileContent(timezone, 'production', outDir, 'node', mainEntry)
|
|
75
|
-
packageJson.scripts.deploy = `lakutata-deploy ./Dockerfile ${productionRepository}`
|
|
75
|
+
packageJson.scripts.deploy = `lakutata-deploy --dockerfile ./Dockerfile --repository ${productionRepository}`
|
|
76
76
|
}
|
|
77
77
|
if (packageJson?.scripts?.test && developmentRepository) {
|
|
78
78
|
//有测试主入口并且仓库地址被正确配置
|
|
@@ -102,7 +102,7 @@ export async function CreateDockerFileManipulator(projectPath: string, tsConfigF
|
|
|
102
102
|
}
|
|
103
103
|
if (testEntryPoint && runtime) {
|
|
104
104
|
dockerfiles.DockerfileDev = generateDockerfileContent(timezone, 'development', outDir, runtime, testEntryPoint)
|
|
105
|
-
packageJson.scripts['deploy:dev'] = `lakutata-deploy ./DockerfileDev ${developmentRepository}`
|
|
105
|
+
packageJson.scripts['deploy:dev'] = `lakutata-deploy --dockerfile ./DockerfileDev --repository ${developmentRepository}`
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
for (const dockerfileName of Object.keys(dockerfiles)) {
|