@travetto/pack 3.4.5 → 3.4.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@travetto/pack",
3
- "version": "3.4.5",
3
+ "version": "3.4.6",
4
4
  "description": "Code packing utilities",
5
5
  "keywords": [
6
6
  "travetto",
@@ -32,7 +32,7 @@
32
32
  "rollup": "^4.5.0"
33
33
  },
34
34
  "peerDependencies": {
35
- "@travetto/cli": "^3.4.3"
35
+ "@travetto/cli": "^3.4.4"
36
36
  },
37
37
  "peerDependenciesMeta": {
38
38
  "@travetto/cli": {
@@ -14,28 +14,73 @@ export class PackConfigUtil {
14
14
  }
15
15
 
16
16
  /**
17
- * Common docker environment setup
17
+ * Setup docker ports
18
18
  */
19
- static dockerWorkspace(cfg: DockerPackConfig): string {
20
- const { folder, user, group, uid, gid } = cfg.dockerRuntime;
19
+ static dockerPorts(cfg: DockerPackConfig): string {
20
+ return (cfg.dockerPort?.map(x => `EXPOSE ${x}`) ?? []).join('\n');
21
+ }
22
+
23
+ /**
24
+ * Setup docker user
25
+ * @returns
26
+ */
27
+ static dockerUser(cfg: DockerPackConfig): string {
28
+ const { user, group, uid, gid } = cfg.dockerRuntime;
21
29
  return [
22
- ...cfg.dockerPort?.map(x => `EXPOSE ${x}`) ?? [],
23
30
  user !== 'root' ? ifElse(
24
31
  'RUN which useradd',
25
32
  `groupadd --gid ${gid} ${group} && useradd -u ${uid} -g ${group} ${user}`,
26
33
  `addgroup -g ${gid} ${group} && adduser -D -G ${group} -u ${uid} ${user}`
27
34
  ) : '',
28
- `RUN mkdir ${folder} && chown ${user}:${group} ${folder}`,
29
35
  `USER ${user}`,
36
+ ].join('\n');
37
+ }
38
+
39
+ /**
40
+ * Common docker runtime folder
41
+ */
42
+ static dockerAppFolder(cfg: DockerPackConfig): string {
43
+ const { folder, user, group } = cfg.dockerRuntime;
44
+ return [
45
+ `RUN mkdir ${folder} && chown ${user}:${group} ${folder}`,
30
46
  `WORKDIR ${folder}`,
31
- `COPY --chown="${user}:${group}" . .`,
32
47
  ].join('\n');
33
48
  }
34
49
 
50
+ /**
51
+ * Docker app files copied and permissioned
52
+ */
53
+ static dockerAppFiles(cfg: DockerPackConfig): string {
54
+ const { user, group } = cfg.dockerRuntime;
55
+ return `COPY --chown="${user}:${group}" . .`;
56
+ }
57
+
35
58
  /**
36
59
  * Entrypoint creation for a docker configuration
37
60
  */
38
61
  static dockerEntrypoint(cfg: DockerPackConfig): string {
39
62
  return `ENTRYPOINT ["${cfg.dockerRuntime.folder}/${cfg.mainName}.sh"]`;
40
63
  }
64
+ /**
65
+ * Common docker environment setup
66
+ */
67
+ static dockerWorkspace(cfg: DockerPackConfig): string {
68
+ return [
69
+ this.dockerPorts(cfg),
70
+ this.dockerUser(cfg),
71
+ this.dockerAppFolder(cfg),
72
+ this.dockerAppFiles(cfg),
73
+ ].filter(x => !!x).join('\n');
74
+ }
75
+
76
+ /**
77
+ * Common docker file setup
78
+ */
79
+ static dockerStandardFile(cfg: DockerPackConfig): string {
80
+ return [
81
+ this.dockerInit(cfg),
82
+ this.dockerWorkspace(cfg),
83
+ this.dockerEntrypoint(cfg)
84
+ ].join('\n');
85
+ }
41
86
  }
@@ -1,8 +1,4 @@
1
1
  import { DockerPackFactory } from './bin/types';
2
2
  import { PackConfigUtil } from './bin/config-util';
3
3
 
4
- export const factory: DockerPackFactory = cfg => [
5
- PackConfigUtil.dockerInit(cfg),
6
- PackConfigUtil.dockerWorkspace(cfg),
7
- PackConfigUtil.dockerEntrypoint(cfg),
8
- ].join('\n');
4
+ export const factory: DockerPackFactory = cfg => PackConfigUtil.dockerStandardFile(cfg);