@theia/dev-container 1.49.0 → 1.50.0

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.
Files changed (53) hide show
  1. package/lib/dev-container-server/dev-container-server.js.map +1 -1
  2. package/lib/electron-browser/container-connection-contribution.js +15 -15
  3. package/lib/electron-browser/container-connection-contribution.js.map +1 -1
  4. package/lib/electron-browser/container-info-contribution.d.ts +11 -0
  5. package/lib/electron-browser/container-info-contribution.d.ts.map +1 -0
  6. package/lib/electron-browser/container-info-contribution.js +50 -0
  7. package/lib/electron-browser/container-info-contribution.js.map +1 -0
  8. package/lib/electron-browser/container-output-provider.js +4 -4
  9. package/lib/electron-browser/container-output-provider.js.map +1 -1
  10. package/lib/electron-browser/dev-container-frontend-module.d.ts.map +1 -1
  11. package/lib/electron-browser/dev-container-frontend-module.js +4 -0
  12. package/lib/electron-browser/dev-container-frontend-module.js.map +1 -1
  13. package/lib/electron-common/remote-container-connection-provider.d.ts +2 -0
  14. package/lib/electron-common/remote-container-connection-provider.d.ts.map +1 -1
  15. package/lib/electron-common/remote-container-connection-provider.js.map +1 -1
  16. package/lib/electron-node/dev-container-backend-module.d.ts.map +1 -1
  17. package/lib/electron-node/dev-container-backend-module.js +10 -0
  18. package/lib/electron-node/dev-container-backend-module.js.map +1 -1
  19. package/lib/electron-node/dev-container-file-service.js +4 -4
  20. package/lib/electron-node/dev-container-file-service.js.map +1 -1
  21. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.d.ts +17 -0
  22. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.d.ts.map +1 -0
  23. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js +69 -0
  24. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js.map +1 -0
  25. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts +10 -1
  26. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts.map +1 -1
  27. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js +99 -46
  28. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js.map +1 -1
  29. package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts +11 -0
  30. package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts.map +1 -0
  31. package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js +37 -0
  32. package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js.map +1 -0
  33. package/lib/electron-node/devcontainer-file.d.ts +29 -2
  34. package/lib/electron-node/devcontainer-file.d.ts.map +1 -1
  35. package/lib/electron-node/docker-container-service.d.ts +12 -6
  36. package/lib/electron-node/docker-container-service.d.ts.map +1 -1
  37. package/lib/electron-node/docker-container-service.js +20 -29
  38. package/lib/electron-node/docker-container-service.js.map +1 -1
  39. package/lib/electron-node/remote-container-connection-provider.d.ts +7 -3
  40. package/lib/electron-node/remote-container-connection-provider.d.ts.map +1 -1
  41. package/lib/electron-node/remote-container-connection-provider.js +37 -21
  42. package/lib/electron-node/remote-container-connection-provider.js.map +1 -1
  43. package/package.json +7 -7
  44. package/src/electron-browser/container-info-contribution.ts +46 -0
  45. package/src/electron-browser/dev-container-frontend-module.ts +5 -0
  46. package/src/electron-common/remote-container-connection-provider.ts +2 -0
  47. package/src/electron-node/dev-container-backend-module.ts +11 -0
  48. package/src/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.ts +68 -0
  49. package/src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts +82 -31
  50. package/src/electron-node/devcontainer-contributions/profile-file-modification-contribution.ts +35 -0
  51. package/src/electron-node/devcontainer-file.ts +32 -1
  52. package/src/electron-node/docker-container-service.ts +31 -23
  53. package/src/electron-node/remote-container-connection-provider.ts +26 -9
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OutputHelper = exports.MountsContribution = exports.ForwardPortsContribution = exports.DockerFileContribution = exports.ImageFileContribution = exports.registerContainerCreationContributions = void 0;
3
+ exports.OutputHelper = exports.PostCreateCommandContribution = exports.RemoteUserContribution = exports.MountsContribution = exports.ForwardPortsContribution = exports.DockerFileContribution = exports.ImageFileContribution = exports.registerContainerCreationContributions = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const inversify_1 = require("@theia/core/shared/inversify");
6
6
  const docker_container_service_1 = require("../docker-container-service");
7
7
  const core_1 = require("@theia/core");
8
+ const fs = require("@theia/core/shared/fs-extra");
9
+ const remote_port_forwarding_provider_1 = require("@theia/remote/lib/electron-common/remote-port-forwarding-provider");
8
10
  function registerContainerCreationContributions(bind) {
9
11
  bind(docker_container_service_1.ContainerCreationContribution).to(ImageFileContribution).inSingletonScope();
10
12
  bind(docker_container_service_1.ContainerCreationContribution).to(DockerFileContribution).inSingletonScope();
11
13
  bind(docker_container_service_1.ContainerCreationContribution).to(ForwardPortsContribution).inSingletonScope();
12
14
  bind(docker_container_service_1.ContainerCreationContribution).to(MountsContribution).inSingletonScope();
15
+ bind(docker_container_service_1.ContainerCreationContribution).to(RemoteUserContribution).inSingletonScope();
16
+ bind(docker_container_service_1.ContainerCreationContribution).to(PostCreateCommandContribution).inSingletonScope();
13
17
  }
14
18
  exports.registerContainerCreationContributions = registerContainerCreationContributions;
15
19
  let ImageFileContribution = class ImageFileContribution {
@@ -29,84 +33,94 @@ let ImageFileContribution = class ImageFileContribution {
29
33
  }
30
34
  }
31
35
  };
32
- ImageFileContribution = (0, tslib_1.__decorate)([
36
+ exports.ImageFileContribution = ImageFileContribution;
37
+ exports.ImageFileContribution = ImageFileContribution = tslib_1.__decorate([
33
38
  (0, inversify_1.injectable)()
34
39
  ], ImageFileContribution);
35
- exports.ImageFileContribution = ImageFileContribution;
36
40
  let DockerFileContribution = class DockerFileContribution {
37
41
  async handleContainerCreation(createOptions, containerConfig, api, outputprovider) {
38
42
  var _a, _b, _c, _d, _e;
39
43
  // check if dockerfile container
40
44
  if (containerConfig.dockerFile || ((_a = containerConfig.build) === null || _a === void 0 ? void 0 : _a.dockerfile)) {
41
45
  const dockerfile = ((_b = containerConfig.dockerFile) !== null && _b !== void 0 ? _b : (_c = containerConfig.build) === null || _c === void 0 ? void 0 : _c.dockerfile);
42
- const buildStream = await api.buildImage({
43
- context: (_d = containerConfig.context) !== null && _d !== void 0 ? _d : new core_1.Path(containerConfig.location).dir.fsPath(),
44
- src: [dockerfile],
45
- }, {
46
- buildargs: (_e = containerConfig.build) === null || _e === void 0 ? void 0 : _e.args
47
- });
48
- // TODO probably have some console windows showing the output of the build
49
- const imageId = await new Promise((res, rej) => api.modem.followProgress(buildStream, (err, outputs) => {
50
- var _a;
51
- if (err) {
52
- rej(err);
53
- }
54
- else {
55
- for (let i = outputs.length - 1; i >= 0; i--) {
56
- if ((_a = outputs[i].aux) === null || _a === void 0 ? void 0 : _a.ID) {
57
- res(outputs[i].aux.ID);
58
- return;
46
+ const context = (_d = containerConfig.context) !== null && _d !== void 0 ? _d : new core_1.Path(containerConfig.location).dir.fsPath();
47
+ try {
48
+ // ensure dockerfile exists
49
+ await fs.lstat(new core_1.Path(context).join(dockerfile).fsPath());
50
+ const buildStream = await api.buildImage({
51
+ context,
52
+ src: [dockerfile],
53
+ }, {
54
+ buildargs: (_e = containerConfig.build) === null || _e === void 0 ? void 0 : _e.args
55
+ });
56
+ // TODO probably have some console windows showing the output of the build
57
+ const imageId = await new Promise((res, rej) => api.modem.followProgress(buildStream, (err, outputs) => {
58
+ var _a;
59
+ if (err) {
60
+ rej(err);
61
+ }
62
+ else {
63
+ for (let i = outputs.length - 1; i >= 0; i--) {
64
+ if ((_a = outputs[i].aux) === null || _a === void 0 ? void 0 : _a.ID) {
65
+ res(outputs[i].aux.ID);
66
+ return;
67
+ }
59
68
  }
60
69
  }
61
- }
62
- }, progress => outputprovider.onRemoteOutput(OutputHelper.parseProgress(progress))));
63
- createOptions.Image = imageId;
70
+ }, progress => outputprovider.onRemoteOutput(OutputHelper.parseProgress(progress))));
71
+ createOptions.Image = imageId;
72
+ }
73
+ catch (error) {
74
+ outputprovider.onRemoteOutput(`could not build dockerfile "${dockerfile}" reason: ${error.message}`);
75
+ throw error;
76
+ }
64
77
  }
65
78
  }
66
79
  };
67
- DockerFileContribution = (0, tslib_1.__decorate)([
80
+ exports.DockerFileContribution = DockerFileContribution;
81
+ exports.DockerFileContribution = DockerFileContribution = tslib_1.__decorate([
68
82
  (0, inversify_1.injectable)()
69
83
  ], DockerFileContribution);
70
- exports.DockerFileContribution = DockerFileContribution;
71
84
  let ForwardPortsContribution = class ForwardPortsContribution {
72
- async handleContainerCreation(createOptions, containerConfig, api) {
73
- var _a;
85
+ async handlePostConnect(containerConfig, connection) {
74
86
  if (!containerConfig.forwardPorts) {
75
87
  return;
76
88
  }
77
- for (const port of containerConfig.forwardPorts) {
78
- let portKey;
79
- let hostPort;
80
- if (typeof port === 'string') {
81
- const parts = port.split(':');
82
- portKey = isNaN(+parts[0]) ? parts[0] : `${parts[0]}/tcp`;
83
- hostPort = (_a = parts[1]) !== null && _a !== void 0 ? _a : parts[0];
89
+ for (const forward of containerConfig.forwardPorts) {
90
+ let port;
91
+ let address;
92
+ if (typeof forward === 'string') {
93
+ const parts = forward.split(':');
94
+ address = parts[0];
95
+ port = parseInt(parts[1]);
84
96
  }
85
97
  else {
86
- portKey = `${port}/tcp`;
87
- hostPort = port.toString();
98
+ port = forward;
88
99
  }
89
- createOptions.ExposedPorts[portKey] = {};
90
- createOptions.HostConfig.PortBindings[portKey] = [{ HostPort: hostPort }];
100
+ this.portForwardingProvider.forwardPort(connection.localPort, { port, address });
91
101
  }
92
102
  }
93
103
  };
94
- ForwardPortsContribution = (0, tslib_1.__decorate)([
104
+ exports.ForwardPortsContribution = ForwardPortsContribution;
105
+ tslib_1.__decorate([
106
+ (0, inversify_1.inject)(remote_port_forwarding_provider_1.RemotePortForwardingProvider),
107
+ tslib_1.__metadata("design:type", Object)
108
+ ], ForwardPortsContribution.prototype, "portForwardingProvider", void 0);
109
+ exports.ForwardPortsContribution = ForwardPortsContribution = tslib_1.__decorate([
95
110
  (0, inversify_1.injectable)()
96
111
  ], ForwardPortsContribution);
97
- exports.ForwardPortsContribution = ForwardPortsContribution;
98
112
  let MountsContribution = class MountsContribution {
99
113
  async handleContainerCreation(createOptions, containerConfig, api) {
100
- var _a, _b, _c;
114
+ var _a, _b;
101
115
  if (!containerConfig.mounts) {
102
116
  return;
103
117
  }
104
- createOptions.HostConfig.Mounts.push(...(_c = (_b = (_a = containerConfig) === null || _a === void 0 ? void 0 : _a.mounts) === null || _b === void 0 ? void 0 : _b.map(mount => {
118
+ createOptions.HostConfig.Mounts.push(...(_b = (_a = containerConfig === null || containerConfig === void 0 ? void 0 : containerConfig.mounts) === null || _a === void 0 ? void 0 : _a.map(mount => {
105
119
  var _a;
106
120
  return typeof mount === 'string' ?
107
121
  this.parseMountString(mount) :
108
122
  { Source: mount.source, Target: mount.target, Type: (_a = mount.type) !== null && _a !== void 0 ? _a : 'bind' };
109
- })) !== null && _c !== void 0 ? _c : []);
123
+ })) !== null && _b !== void 0 ? _b : []);
110
124
  }
111
125
  parseMountString(mount) {
112
126
  var _a, _b, _c, _d;
@@ -118,10 +132,49 @@ let MountsContribution = class MountsContribution {
118
132
  };
119
133
  }
120
134
  };
121
- MountsContribution = (0, tslib_1.__decorate)([
135
+ exports.MountsContribution = MountsContribution;
136
+ exports.MountsContribution = MountsContribution = tslib_1.__decorate([
122
137
  (0, inversify_1.injectable)()
123
138
  ], MountsContribution);
124
- exports.MountsContribution = MountsContribution;
139
+ let RemoteUserContribution = class RemoteUserContribution {
140
+ async handleContainerCreation(createOptions, containerConfig, api) {
141
+ if (containerConfig.remoteUser) {
142
+ createOptions.User = containerConfig.remoteUser;
143
+ }
144
+ }
145
+ };
146
+ exports.RemoteUserContribution = RemoteUserContribution;
147
+ exports.RemoteUserContribution = RemoteUserContribution = tslib_1.__decorate([
148
+ (0, inversify_1.injectable)()
149
+ ], RemoteUserContribution);
150
+ let PostCreateCommandContribution = class PostCreateCommandContribution {
151
+ async handlePostCreate(containerConfig, container, api, outputprovider) {
152
+ if (containerConfig.postCreateCommand) {
153
+ const commands = typeof containerConfig.postCreateCommand === 'object' && !(containerConfig.postCreateCommand instanceof Array) ?
154
+ Object.values(containerConfig.postCreateCommand) : [containerConfig.postCreateCommand];
155
+ for (const command of commands) {
156
+ try {
157
+ let exec;
158
+ if (command instanceof Array) {
159
+ exec = await container.exec({ Cmd: command, AttachStderr: true, AttachStdout: true });
160
+ }
161
+ else {
162
+ exec = await container.exec({ Cmd: ['sh', '-c', command], AttachStderr: true, AttachStdout: true });
163
+ }
164
+ const stream = await exec.start({ Tty: true });
165
+ stream.on('data', chunk => outputprovider.onRemoteOutput(chunk.toString()));
166
+ }
167
+ catch (error) {
168
+ outputprovider.onRemoteOutput('could not execute postCreateCommand ' + JSON.stringify(command) + ' reason:' + error.message);
169
+ }
170
+ }
171
+ }
172
+ }
173
+ };
174
+ exports.PostCreateCommandContribution = PostCreateCommandContribution;
175
+ exports.PostCreateCommandContribution = PostCreateCommandContribution = tslib_1.__decorate([
176
+ (0, inversify_1.injectable)()
177
+ ], PostCreateCommandContribution);
125
178
  var OutputHelper;
126
179
  (function (OutputHelper) {
127
180
  function parseProgress(progress) {
@@ -129,5 +182,5 @@ var OutputHelper;
129
182
  return (_c = (_b = (_a = progress.stream) !== null && _a !== void 0 ? _a : progress.progress) !== null && _b !== void 0 ? _b : progress.status) !== null && _c !== void 0 ? _c : '';
130
183
  }
131
184
  OutputHelper.parseProgress = parseProgress;
132
- })(OutputHelper = exports.OutputHelper || (exports.OutputHelper = {}));
185
+ })(OutputHelper || (exports.OutputHelper = OutputHelper = {}));
133
186
  //# sourceMappingURL=main-container-creation-contributions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-container-creation-contributions.js","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main-container-creation-contributions.js","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts"],"names":[],"mappings":";;;;AAgBA,4DAA8E;AAC9E,0EAA4E;AAE5E,sCAAmC;AAEnC,kDAAkD;AAClD,uHAAiH;AAGjH,SAAgB,sCAAsC,CAAC,IAAqB;IACxE,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACjF,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClF,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpF,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClF,IAAI,CAAC,wDAA6B,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC7F,CAAC;AAPD,wFAOC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,KAAK,CAAC,uBAAuB,CAAC,aAA4C,EAAE,eAA+B,EACvG,GAAW,EAAE,cAAuC;QACpD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACtF,IAAI,GAAG,EAAE,CAAC;oBACN,GAAG,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACJ,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;wBACvD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;wBACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChG,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,aAAa,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;QAChD,CAAC;IACL,CAAC;CACJ,CAAA;AAhBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,sBAAU,GAAE;GACA,qBAAqB,CAgBjC;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC/B,KAAK,CAAC,uBAAuB,CAAC,aAA4C,EAAE,eAAoC,EAC5G,GAAW,EAAE,cAAuC;;QACpD,gCAAgC;QAChC,IAAI,eAAe,CAAC,UAAU,KAAI,MAAA,eAAe,CAAC,KAAK,0CAAE,UAAU,CAAA,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,CAAC,MAAA,eAAe,CAAC,UAAU,mCAAI,MAAA,eAAe,CAAC,KAAK,0CAAE,UAAU,CAAW,CAAC;YAC/F,MAAM,OAAO,GAAG,MAAA,eAAe,CAAC,OAAO,mCAAI,IAAI,WAAI,CAAC,eAAe,CAAC,QAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrG,IAAI,CAAC;gBACD,2BAA2B;gBAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,WAAI,CAAC,OAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEtE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;oBACrC,OAAO;oBACP,GAAG,EAAE,CAAC,UAAU,CAAC;iBACQ,EAAE;oBAC3B,SAAS,EAAE,MAAA,eAAe,CAAC,KAAK,0CAAE,IAAI;iBACzC,CAAC,CAAC;gBACH,0EAA0E;gBAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,WAAY,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;;oBAC5G,IAAI,GAAG,EAAE,CAAC;wBACN,GAAG,CAAC,GAAG,CAAC,CAAC;oBACb,CAAC;yBAAM,CAAC;wBACJ,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,IAAI,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,0CAAE,EAAE,EAAE,CAAC;gCACrB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACvB,OAAO;4BACX,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrF,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,cAAc,CAAC,cAAc,CAAC,+BAA+B,UAAU,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrG,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AArCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,sBAAU,GAAE;GACA,sBAAsB,CAqClC;AAGM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKjC,KAAK,CAAC,iBAAiB,CAAC,eAA0C,EAAE,UAA2C;QAC3G,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO;QACX,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;YACjD,IAAI,IAAY,CAAC;YACjB,IAAI,OAA2B,CAAC;YAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;IAEL,CAAC;CAEJ,CAAA;AA1BY,4DAAwB;AAGd;IADlB,IAAA,kBAAM,EAAC,8DAA4B,CAAC;;wEACmC;mCAH/D,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CA0BpC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC3B,KAAK,CAAC,uBAAuB,CAAC,aAA4C,EAAE,eAA0C,EAAE,GAAW;;QAC/H,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,aAAa,CAAC,UAAW,CAAC,MAAO,CAAC,IAAI,CAAC,GAAG,MAAA,MAAC,eAA2C,aAA3C,eAAe,uBAAf,eAAe,CAA8B,MAAM,0CACxF,GAAG,CAAC,KAAK,CAAC,EAAE;;YAAC,OAAA,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9B,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,MAAM,EAAE,CAAA;SAAA,CAAC,mCAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,gBAAgB,CAAC,KAAa;;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO;YACH,MAAM,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE;YACjG,MAAM,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE;YACjG,IAAI,EAAE,CAAC,MAAA,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,MAAM,CAAqB;SACpG,CAAC;IACN,CAAC;CACJ,CAAA;AApBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CAoB9B;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC/B,KAAK,CAAC,uBAAuB,CAAC,aAA4C,EAAE,eAA0C,EAAE,GAAW;QAC/H,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC;QACpD,CAAC;IACL,CAAC;CACJ,CAAA;AANY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,sBAAU,GAAE;GACA,sBAAsB,CAMlC;AAGM,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACtC,KAAK,CAAC,gBAAgB,CAAE,eAA0C,EAAE,SAA2B,EAAE,GAAW,EAAE,cAAuC;QACjJ,IAAI,eAAe,CAAC,iBAAiB,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,eAAe,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,CAAC,iBAAiB,YAAY,KAAK,CAAC,CAAC,CAAC;gBAC7H,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAC3F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACD,IAAI,IAAI,CAAC;oBACT,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;wBAC3B,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE1F,CAAC;yBAAM,CAAC;wBACJ,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxG,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,cAAc,CAAC,cAAc,CAAC,sCAAsC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjI,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ,CAAA;AAtBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,sBAAU,GAAE;GACA,6BAA6B,CAsBzC;AAED,IAAiB,YAAY,CAW5B;AAXD,WAAiB,YAAY;IAQzB,SAAgB,aAAa,CAAC,QAAkB;;QAC5C,OAAO,MAAA,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,QAAQ,CAAC,QAAQ,mCAAI,QAAQ,CAAC,MAAM,mCAAI,EAAE,CAAC;IACzE,CAAC;IAFe,0BAAa,gBAE5B,CAAA;AACL,CAAC,EAXgB,YAAY,4BAAZ,YAAY,QAW5B"}
@@ -0,0 +1,11 @@
1
+ import { DevContainerConfiguration } from '../devcontainer-file';
2
+ import { ContainerCreationContribution } from '../docker-container-service';
3
+ import * as Docker from 'dockerode';
4
+ import { ContainerOutputProvider } from '../../electron-common/container-output-provider';
5
+ /**
6
+ * this contribution changes the /etc/profile file so that it won't overwrite the PATH variable set by docker
7
+ */
8
+ export declare class ProfileFileModificationContribution implements ContainerCreationContribution {
9
+ handlePostCreate(containerConfig: DevContainerConfiguration, container: Docker.Container, api: Docker, outputprovider: ContainerOutputProvider): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=profile-file-modification-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-file-modification-contribution.d.ts","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/profile-file-modification-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F;;GAEG;AACH,qBACa,mCAAoC,YAAW,6BAA6B;IAC/E,gBAAgB,CAAC,eAAe,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvK"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024 Typefox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ProfileFileModificationContribution = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ /**
22
+ * this contribution changes the /etc/profile file so that it won't overwrite the PATH variable set by docker
23
+ */
24
+ let ProfileFileModificationContribution = class ProfileFileModificationContribution {
25
+ async handlePostCreate(containerConfig, container, api, outputprovider) {
26
+ const stream = await (await container.exec({
27
+ Cmd: ['sh', '-c', 'sed -i \'s|PATH="\\([^"]*\\)"|PATH=${PATH:-"\\1"}|g\' /etc/profile'], User: 'root',
28
+ AttachStderr: true, AttachStdout: true
29
+ })).start({});
30
+ stream.on('data', data => outputprovider.onRemoteOutput(data.toString()));
31
+ }
32
+ };
33
+ exports.ProfileFileModificationContribution = ProfileFileModificationContribution;
34
+ exports.ProfileFileModificationContribution = ProfileFileModificationContribution = tslib_1.__decorate([
35
+ (0, inversify_1.injectable)()
36
+ ], ProfileFileModificationContribution);
37
+ //# sourceMappingURL=profile-file-modification-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-file-modification-contribution.js","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/profile-file-modification-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAKhF,4DAA0D;AAG1D;;GAEG;AAEI,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAC5C,KAAK,CAAC,gBAAgB,CAAC,eAA0C,EAAE,SAA2B,EAAE,GAAW,EAAE,cAAuC;QAChJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC;YACvC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,oEAAoE,CAAC,EAAE,IAAI,EAAE,MAAM;YACrG,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI;SACzC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;CACJ,CAAA;AARY,kFAAmC;8CAAnC,mCAAmC;IAD/C,IAAA,sBAAU,GAAE;GACA,mCAAmC,CAQ/C"}
@@ -2,10 +2,10 @@
2
2
  * Defines a dev container
3
3
  * type generated from https://containers.dev/implementors/json_schema/ and modified
4
4
  */
5
- export declare type DevContainerConfiguration = (((DockerfileContainer | ImageContainer) & (NonComposeContainerBase)) | ComposeContainer) & DevContainerCommon & {
5
+ export type DevContainerConfiguration = (((DockerfileContainer | ImageContainer) & (NonComposeContainerBase)) | ComposeContainer) & DevContainerCommon & {
6
6
  location?: string;
7
7
  };
8
- export declare type DockerfileContainer = {
8
+ export type DockerfileContainer = {
9
9
  /**
10
10
  * Docker build-related options.
11
11
  */
@@ -227,6 +227,18 @@ export interface DevContainerCommon {
227
227
  * The default is the same user as the container.
228
228
  */
229
229
  remoteUser?: string;
230
+ /**
231
+ * extensions to install in the container at launch. The expeceted format is publisher.name[@version].
232
+ * The default is no extensions being installed.
233
+ */
234
+ extensions?: string[];
235
+ /**
236
+ * settings to set in the container at launch in the settings.json. The expected format is key=value.
237
+ * The default is no preferences being set.
238
+ */
239
+ settings?: {
240
+ [k: string]: unknown;
241
+ };
230
242
  /**
231
243
  * A command to run locally before anything else. This command is run before 'onCreateCommand'.
232
244
  * If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.
@@ -309,6 +321,21 @@ export interface DevContainerCommon {
309
321
  */
310
322
  customizations?: {
311
323
  [k: string]: unknown;
324
+ vscode?: {
325
+ /**
326
+ * extensions to install in the container at launch. The expeceted format is publisher.name[@version].
327
+ * The default is no extensions being installed.
328
+ */
329
+ extensions?: string[];
330
+ /**
331
+ * settings to set in the container at launch in the settings.json. The expected format is key=value.
332
+ * The default is no preferences being set.
333
+ */
334
+ settings?: {
335
+ [k: string]: unknown;
336
+ };
337
+ [k: string]: unknown;
338
+ };
312
339
  };
313
340
  additionalProperties?: {
314
341
  [k: string]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"devcontainer-file.d.ts","sourceRoot":"","sources":["../../src/electron-node/devcontainer-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devcontainer-file.d.ts","sourceRoot":"","sources":["../../src/electron-node/devcontainer-file.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,29 @@
1
- import { ContributionProvider, URI } from '@theia/core';
1
+ import { ContributionProvider, MaybePromise, URI } from '@theia/core';
2
2
  import { WorkspaceServer } from '@theia/workspace/lib/common';
3
3
  import * as Docker from 'dockerode';
4
4
  import { LastContainerInfo } from '../electron-common/remote-container-connection-provider';
5
5
  import { DevContainerConfiguration } from './devcontainer-file';
6
6
  import { DevContainerFileService } from './dev-container-file-service';
7
7
  import { ContainerOutputProvider } from '../electron-common/container-output-provider';
8
+ import { RemoteDockerContainerConnection } from './remote-container-connection-provider';
8
9
  export declare const ContainerCreationContribution: unique symbol;
9
10
  export interface ContainerCreationContribution {
10
- handleContainerCreation(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration, api: Docker, outputProvider?: ContainerOutputProvider): Promise<void>;
11
+ handleContainerCreation?(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration, api: Docker, outputProvider?: ContainerOutputProvider): MaybePromise<void>;
12
+ /**
13
+ * executed after creating and starting the container
14
+ */
15
+ handlePostCreate?(containerConfig: DevContainerConfiguration, container: Docker.Container, api: Docker, outputProvider?: ContainerOutputProvider): MaybePromise<void>;
16
+ /**
17
+ * executed after a connection has been established with the container and theia has been setup
18
+ */
19
+ handlePostConnect?(containerConfig: DevContainerConfiguration, connection: RemoteDockerContainerConnection, outputProvider?: ContainerOutputProvider): MaybePromise<void>;
11
20
  }
12
21
  export declare class DockerContainerService {
13
22
  protected readonly workspaceServer: WorkspaceServer;
14
23
  protected readonly containerCreationContributions: ContributionProvider<ContainerCreationContribution>;
15
24
  protected readonly devContainerFileService: DevContainerFileService;
16
25
  getOrCreateContainer(docker: Docker, devcontainerFile: string, lastContainerInfo?: LastContainerInfo, outputProvider?: ContainerOutputProvider): Promise<Docker.Container>;
26
+ postConnect(devcontainerFile: string, connection: RemoteDockerContainerConnection, outputProvider?: ContainerOutputProvider): Promise<void>;
17
27
  protected buildContainer(docker: Docker, devcontainerFile: string, workspace: URI, outputProvider?: ContainerOutputProvider): Promise<Docker.Container>;
18
- protected getPortBindings(forwardPorts: (string | number)[]): {
19
- exposedPorts: {};
20
- portBindings: {};
21
- };
22
28
  }
23
29
  //# sourceMappingURL=docker-container-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker-container-service.d.ts","sourceRoot":"","sources":["../../src/electron-node/docker-container-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,eAAO,MAAM,6BAA6B,eAA2C,CAAC;AAEtF,MAAM,WAAW,6BAA6B;IAC1C,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAChE,eAAe,EAAE,yBAAyB,EAC1C,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,qBACa,sBAAsB;IAG/B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;IAGvG,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAE9D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAC/D,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;cAwB/F,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAgC7J,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG;QAAE,YAAY,EAAE,EAAE,CAAC;QAAC,YAAY,EAAE,EAAE,CAAA;KAAE;CAmBvG"}
1
+ {"version":3,"file":"docker-container-service.d.ts","sourceRoot":"","sources":["../../src/electron-node/docker-container-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAEzF,eAAO,MAAM,6BAA6B,eAA2C,CAAC;AAEtF,MAAM,WAAW,6BAA6B;IAC1C,uBAAuB,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EACjE,eAAe,EAAE,yBAAyB,EAC1C,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,uBAAuB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,gBAAgB,CAAC,CAAC,eAAe,EAAE,yBAAyB,EACxD,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,uBAAuB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,iBAAiB,CAAC,CAAC,eAAe,EAAE,yBAAyB,EAAE,UAAU,EAAE,+BAA+B,EACtG,cAAc,CAAC,EAAE,uBAAuB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACrE;AAED,qBACa,sBAAsB;IAG/B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;IAGvG,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAE9D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAC/D,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAwBzG,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,+BAA+B,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;cASjI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;CAmChK"}
@@ -47,7 +47,15 @@ let DockerContainerService = class DockerContainerService {
47
47
  }
48
48
  return container;
49
49
  }
50
+ async postConnect(devcontainerFile, connection, outputProvider) {
51
+ var _a;
52
+ const devcontainerConfig = await this.devContainerFileService.getConfiguration(devcontainerFile);
53
+ for (const containerCreateContrib of this.containerCreationContributions.getContributions()) {
54
+ await ((_a = containerCreateContrib.handlePostConnect) === null || _a === void 0 ? void 0 : _a.call(containerCreateContrib, devcontainerConfig, connection, outputProvider));
55
+ }
56
+ }
50
57
  async buildContainer(docker, devcontainerFile, workspace, outputProvider) {
58
+ var _a, _b;
51
59
  const devcontainerConfig = await this.devContainerFileService.getConfiguration(devcontainerFile);
52
60
  if (!devcontainerConfig) {
53
61
  // TODO add ability for user to create new config
@@ -66,49 +74,32 @@ let DockerContainerService = class DockerContainerService {
66
74
  },
67
75
  };
68
76
  for (const containerCreateContrib of this.containerCreationContributions.getContributions()) {
69
- await containerCreateContrib.handleContainerCreation(containerCreateOptions, devcontainerConfig, docker, outputProvider);
77
+ await ((_a = containerCreateContrib.handleContainerCreation) === null || _a === void 0 ? void 0 : _a.call(containerCreateContrib, containerCreateOptions, devcontainerConfig, docker, outputProvider));
70
78
  }
71
79
  // TODO add more config
72
80
  const container = await docker.createContainer(containerCreateOptions);
73
81
  await container.start();
74
- return container;
75
- }
76
- getPortBindings(forwardPorts) {
77
- var _a;
78
- const res = { exposedPorts: {}, portBindings: {} };
79
- for (const port of forwardPorts) {
80
- let portKey;
81
- let hostPort;
82
- if (typeof port === 'string') {
83
- const parts = port.split(':');
84
- portKey = isNaN(+parts[0]) ? parts[0] : `${parts[0]}/tcp`;
85
- hostPort = (_a = parts[1]) !== null && _a !== void 0 ? _a : parts[0];
86
- }
87
- else {
88
- portKey = `${port}/tcp`;
89
- hostPort = port.toString();
90
- }
91
- res.exposedPorts[portKey] = {};
92
- res.portBindings[portKey] = [{ HostPort: hostPort }];
82
+ for (const containerCreateContrib of this.containerCreationContributions.getContributions()) {
83
+ await ((_b = containerCreateContrib.handlePostCreate) === null || _b === void 0 ? void 0 : _b.call(containerCreateContrib, devcontainerConfig, container, docker, outputProvider));
93
84
  }
94
- return res;
85
+ return container;
95
86
  }
96
87
  };
97
- (0, tslib_1.__decorate)([
88
+ exports.DockerContainerService = DockerContainerService;
89
+ tslib_1.__decorate([
98
90
  (0, inversify_1.inject)(common_1.WorkspaceServer),
99
- (0, tslib_1.__metadata)("design:type", Object)
91
+ tslib_1.__metadata("design:type", Object)
100
92
  ], DockerContainerService.prototype, "workspaceServer", void 0);
101
- (0, tslib_1.__decorate)([
93
+ tslib_1.__decorate([
102
94
  (0, inversify_1.inject)(core_1.ContributionProvider),
103
95
  (0, inversify_1.named)(exports.ContainerCreationContribution),
104
- (0, tslib_1.__metadata)("design:type", Object)
96
+ tslib_1.__metadata("design:type", Object)
105
97
  ], DockerContainerService.prototype, "containerCreationContributions", void 0);
106
- (0, tslib_1.__decorate)([
98
+ tslib_1.__decorate([
107
99
  (0, inversify_1.inject)(dev_container_file_service_1.DevContainerFileService),
108
- (0, tslib_1.__metadata)("design:type", dev_container_file_service_1.DevContainerFileService)
100
+ tslib_1.__metadata("design:type", dev_container_file_service_1.DevContainerFileService)
109
101
  ], DockerContainerService.prototype, "devContainerFileService", void 0);
110
- DockerContainerService = (0, tslib_1.__decorate)([
102
+ exports.DockerContainerService = DockerContainerService = tslib_1.__decorate([
111
103
  (0, inversify_1.injectable)()
112
104
  ], DockerContainerService);
113
- exports.DockerContainerService = DockerContainerService;
114
105
  //# sourceMappingURL=docker-container-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker-container-service.js","sourceRoot":"","sources":["../../src/electron-node/docker-container-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-container-service.js","sourceRoot":"","sources":["../../src/electron-node/docker-container-service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ /// <reference types="node" />
2
5
  import { ContainerConnectionOptions, ContainerConnectionResult, DevContainerFile, RemoteContainerConnectionProvider } from '../electron-common/remote-container-connection-provider';
3
6
  import { RemoteConnection, RemoteExecOptions, RemoteExecResult, RemoteExecTester } from '@theia/remote/lib/electron-node/remote-types';
4
7
  import { RemoteSetupResult, RemoteSetupService } from '@theia/remote/lib/electron-node/setup/remote-setup-service';
@@ -18,11 +21,13 @@ export declare class DevContainerConnectionProvider implements RemoteContainerCo
18
21
  protected readonly serverProvider: RemoteProxyServerProvider;
19
22
  protected readonly containerService: DockerContainerService;
20
23
  protected readonly devContainerFileService: DevContainerFileService;
24
+ protected readonly remoteService: RemoteConnectionService;
21
25
  protected outputProvider: ContainerOutputProvider | undefined;
22
26
  setClient(client: ContainerOutputProvider): void;
23
27
  connectToContainer(options: ContainerConnectionOptions): Promise<ContainerConnectionResult>;
24
28
  getDevContainerFiles(): Promise<DevContainerFile[]>;
25
- createContainerConnection(container: Docker.Container, docker: Docker): Promise<RemoteDockerContainerConnection>;
29
+ createContainerConnection(container: Docker.Container, docker: Docker, name?: string): Promise<RemoteDockerContainerConnection>;
30
+ getCurrentContainerInfo(port: number): Promise<Docker.ContainerInspectInfo | undefined>;
26
31
  dispose(): void;
27
32
  }
28
33
  export interface RemoteContainerConnectionOptions {
@@ -58,7 +63,6 @@ export declare class RemoteDockerContainerConnection implements RemoteConnection
58
63
  remotePort: number;
59
64
  docker: Docker;
60
65
  container: Docker.Container;
61
- containerInfo: Docker.ContainerInspectInfo | undefined;
62
66
  remoteSetupResult: RemoteSetupResult;
63
67
  protected activeTerminalSession: ContainerTerminalSession | undefined;
64
68
  protected readonly onDidDisconnectEmitter: Emitter<void>;
@@ -68,7 +72,7 @@ export declare class RemoteDockerContainerConnection implements RemoteConnection
68
72
  exec(cmd: string, args?: string[], options?: RemoteExecOptions): Promise<RemoteExecResult>;
69
73
  execPartial(cmd: string, tester: RemoteExecTester, args?: string[], options?: RemoteExecOptions): Promise<RemoteExecResult>;
70
74
  copy(localPath: string | Buffer | NodeJS.ReadableStream, remotePath: string): Promise<void>;
71
- dispose(): void;
75
+ dispose(): Promise<void>;
72
76
  }
73
77
  export {};
74
78
  //# sourceMappingURL=remote-container-connection-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-container-connection-provider.d.ts","sourceRoot":"","sources":["../../src/electron-node/remote-container-connection-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-container-connection-provider.d.ts","sourceRoot":"","sources":["../../src/electron-node/remote-container-connection-provider.ts"],"names":[],"mappings":"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"}