@travetto/pack 4.0.0-rc.6 → 4.0.0-rc.7
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 +8 -7
- package/package.json +4 -4
- package/src/config-util.ts +16 -0
- package/src/types.ts +1 -0
- package/support/cli.pack_docker.ts +12 -10
package/README.md
CHANGED
|
@@ -133,15 +133,16 @@ Options:
|
|
|
133
133
|
-r, --rollup-configuration <string> Rollup configuration file (default: "@travetto/pack/support/rollup/build")
|
|
134
134
|
--env-file <string> Env Flag File Name (default: ".env")
|
|
135
135
|
--manifest-file <string> Manifest File Name (default: "manifest.json")
|
|
136
|
-
-df, --docker-factory <string> Docker Factory source
|
|
137
|
-
-di, --docker-image <string> Docker Image to extend
|
|
138
|
-
-dn, --docker-name <string> Docker Image Name
|
|
139
|
-
-dt, --docker-tag <string> Docker Image Tag
|
|
140
|
-
-dp, --docker-port <number> Docker Image Port
|
|
141
|
-
-dx, --docker-push Docker Push Tags
|
|
136
|
+
-df, --docker-factory <string> Docker Factory source (default: "@travetto/pack/support/pack.dockerfile")
|
|
137
|
+
-di, --docker-image <string> Docker Image to extend (default: "node:20-alpine")
|
|
138
|
+
-dn, --docker-name <string> Docker Image Name (default: "travetto_pack")
|
|
139
|
+
-dt, --docker-tag <string> Docker Image Tag (default: ["latest"])
|
|
140
|
+
-dp, --docker-port <number> Docker Image Port (default: [])
|
|
141
|
+
-dx, --docker-push Docker Push Tags (default: false)
|
|
142
142
|
-db, --docker-build-platform <string> Docker Build Platform
|
|
143
143
|
-dr, --docker-registry <string> Docker Registry
|
|
144
|
-
-
|
|
144
|
+
-ru, --runtime-user <string> Docker Runtime user
|
|
145
|
+
-rp, --runtime-package <string> Docker Runtime Packages (default: [])
|
|
145
146
|
-m, --module <module> Module to run for
|
|
146
147
|
-h, --help display help for command
|
|
147
148
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@travetto/pack",
|
|
3
|
-
"version": "4.0.0-rc.
|
|
3
|
+
"version": "4.0.0-rc.7",
|
|
4
4
|
"description": "Code packing utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"travetto",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"@rollup/plugin-json": "^6.1.0",
|
|
30
30
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
31
31
|
"@rollup/plugin-terser": "^0.4.4",
|
|
32
|
-
"@travetto/base": "^4.0.0-rc.
|
|
33
|
-
"@travetto/terminal": "^4.0.0-rc.
|
|
32
|
+
"@travetto/base": "^4.0.0-rc.6",
|
|
33
|
+
"@travetto/terminal": "^4.0.0-rc.6",
|
|
34
34
|
"rollup": "^4.9.6"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@travetto/cli": "^4.0.0-rc.
|
|
37
|
+
"@travetto/cli": "^4.0.0-rc.6"
|
|
38
38
|
},
|
|
39
39
|
"peerDependenciesMeta": {
|
|
40
40
|
"@travetto/cli": {
|
package/src/config-util.ts
CHANGED
|
@@ -13,6 +13,21 @@ export class PackConfigUtil {
|
|
|
13
13
|
return `FROM ${cfg.dockerImage}`;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Install docker pages in either apk or apt environments
|
|
18
|
+
*/
|
|
19
|
+
static dockerPackageInstall(cfg: DockerPackConfig): string {
|
|
20
|
+
const { packages } = cfg.dockerRuntime;
|
|
21
|
+
if (packages?.length) {
|
|
22
|
+
return ifElse('RUN which apk',
|
|
23
|
+
`apk --update add ${packages.join(' ')} && rm -rf /var/cache/apk/*`,
|
|
24
|
+
`apt update && apt install -y ${packages.join(' ')} && rm -rf /var/lib/{apt,dpkg,cache,log}/`,
|
|
25
|
+
);
|
|
26
|
+
} else {
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
16
31
|
/**
|
|
17
32
|
* Setup docker ports
|
|
18
33
|
*/
|
|
@@ -79,6 +94,7 @@ export class PackConfigUtil {
|
|
|
79
94
|
return [
|
|
80
95
|
this.dockerPorts(cfg),
|
|
81
96
|
this.dockerUser(cfg),
|
|
97
|
+
this.dockerPackageInstall(cfg),
|
|
82
98
|
this.dockerAppFolder(cfg),
|
|
83
99
|
this.dockerAppFiles(cfg),
|
|
84
100
|
this.dockerEnvVars(cfg),
|
package/src/types.ts
CHANGED
|
@@ -15,25 +15,27 @@ const DEFAULT_USER = 'app';
|
|
|
15
15
|
*/
|
|
16
16
|
@CliCommand({ addModule: true })
|
|
17
17
|
export class PackDockerCommand extends BasePackCommand {
|
|
18
|
-
@CliFlag({ desc: 'Docker Factory source
|
|
18
|
+
@CliFlag({ desc: 'Docker Factory source', short: 'df', envVars: ['PACK_DOCKER_FACTORY'] })
|
|
19
19
|
dockerFactory = '@travetto/pack/support/pack.dockerfile';
|
|
20
|
-
@CliFlag({ desc: 'Docker Image to extend
|
|
20
|
+
@CliFlag({ desc: 'Docker Image to extend', short: 'di', envVars: ['PACK_DOCKER_IMAGE'] })
|
|
21
21
|
dockerImage = `node:${NODE_MAJOR}-alpine`;
|
|
22
|
-
@CliFlag({ desc: 'Docker Image Name
|
|
22
|
+
@CliFlag({ desc: 'Docker Image Name', short: 'dn', envVars: ['PACK_DOCKER_IMAGE'] })
|
|
23
23
|
@Required(false)
|
|
24
24
|
dockerName: string;
|
|
25
|
-
@CliFlag({ desc: 'Docker Image Tag
|
|
25
|
+
@CliFlag({ desc: 'Docker Image Tag', short: 'dt', envVars: ['PACK_DOCKER_TAGS'] })
|
|
26
26
|
dockerTag: string[] = ['latest'];
|
|
27
|
-
@CliFlag({ desc: 'Docker Image Port
|
|
27
|
+
@CliFlag({ desc: 'Docker Image Port', short: 'dp', envVars: ['PACK_DOCKER_PORT'] })
|
|
28
28
|
dockerPort: number[] = [];
|
|
29
|
-
@CliFlag({ desc: 'Docker Push Tags
|
|
29
|
+
@CliFlag({ desc: 'Docker Push Tags', short: 'dx', envVars: ['PACK_DOCKER_PUSH'] })
|
|
30
30
|
dockerPush = false;
|
|
31
|
-
@CliFlag({ desc: 'Docker Build Platform
|
|
31
|
+
@CliFlag({ desc: 'Docker Build Platform', short: 'db', envVars: ['PACK_DOCKER_BUILD_PLATFORM'] })
|
|
32
32
|
dockerBuildPlatform?: string;
|
|
33
|
-
@CliFlag({ desc: 'Docker Registry
|
|
33
|
+
@CliFlag({ desc: 'Docker Registry', short: 'dr', envVars: ['PACK_DOCKER_REGISTRY'] })
|
|
34
34
|
dockerRegistry?: string;
|
|
35
|
-
@CliFlag({ desc: 'Docker Runtime user
|
|
35
|
+
@CliFlag({ desc: 'Docker Runtime user', short: 'ru', name: 'runtime-user', envVars: ['PACK_DOCKER_RUNTIME_USER'] })
|
|
36
36
|
dockerRuntimeUserSrc?: string;
|
|
37
|
+
@CliFlag({ desc: 'Docker Runtime Packages', short: 'rp', name: 'runtime-package', envVars: ['PACK_DOCKER_RUNTIME_PACKAGES'] })
|
|
38
|
+
dockerRuntimePackages: string[] = [];
|
|
37
39
|
|
|
38
40
|
@Ignore()
|
|
39
41
|
dockerRuntime: DockerPackConfig['dockerRuntime'];
|
|
@@ -67,7 +69,7 @@ export class PackDockerCommand extends BasePackCommand {
|
|
|
67
69
|
const gid = groupIsNum ? +groupOrGid : DEFAULT_USER_ID;
|
|
68
70
|
const group = (!groupIsNum ? groupOrGid : undefined) || DEFAULT_USER;
|
|
69
71
|
const user = (!userIsNum ? userOrUid : undefined) || DEFAULT_USER;
|
|
70
|
-
this.dockerRuntime = { user, uid, group, gid, folder: `/${DEFAULT_USER}
|
|
72
|
+
this.dockerRuntime = { user, uid, group, gid, folder: `/${DEFAULT_USER}`, packages: this.dockerRuntimePackages };
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
preHelp(): void {
|