@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.
- package/lib/dev-container-server/dev-container-server.js.map +1 -1
- package/lib/electron-browser/container-connection-contribution.js +15 -15
- package/lib/electron-browser/container-connection-contribution.js.map +1 -1
- package/lib/electron-browser/container-info-contribution.d.ts +11 -0
- package/lib/electron-browser/container-info-contribution.d.ts.map +1 -0
- package/lib/electron-browser/container-info-contribution.js +50 -0
- package/lib/electron-browser/container-info-contribution.js.map +1 -0
- package/lib/electron-browser/container-output-provider.js +4 -4
- package/lib/electron-browser/container-output-provider.js.map +1 -1
- package/lib/electron-browser/dev-container-frontend-module.d.ts.map +1 -1
- package/lib/electron-browser/dev-container-frontend-module.js +4 -0
- package/lib/electron-browser/dev-container-frontend-module.js.map +1 -1
- package/lib/electron-common/remote-container-connection-provider.d.ts +2 -0
- package/lib/electron-common/remote-container-connection-provider.d.ts.map +1 -1
- package/lib/electron-common/remote-container-connection-provider.js.map +1 -1
- package/lib/electron-node/dev-container-backend-module.d.ts.map +1 -1
- package/lib/electron-node/dev-container-backend-module.js +10 -0
- package/lib/electron-node/dev-container-backend-module.js.map +1 -1
- package/lib/electron-node/dev-container-file-service.js +4 -4
- package/lib/electron-node/dev-container-file-service.js.map +1 -1
- package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.d.ts +17 -0
- package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.d.ts.map +1 -0
- package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js +69 -0
- package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js.map +1 -0
- package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts +10 -1
- package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts.map +1 -1
- package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js +99 -46
- package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js.map +1 -1
- package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts +11 -0
- package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts.map +1 -0
- package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js +37 -0
- package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js.map +1 -0
- package/lib/electron-node/devcontainer-file.d.ts +29 -2
- package/lib/electron-node/devcontainer-file.d.ts.map +1 -1
- package/lib/electron-node/docker-container-service.d.ts +12 -6
- package/lib/electron-node/docker-container-service.d.ts.map +1 -1
- package/lib/electron-node/docker-container-service.js +20 -29
- package/lib/electron-node/docker-container-service.js.map +1 -1
- package/lib/electron-node/remote-container-connection-provider.d.ts +7 -3
- package/lib/electron-node/remote-container-connection-provider.d.ts.map +1 -1
- package/lib/electron-node/remote-container-connection-provider.js +37 -21
- package/lib/electron-node/remote-container-connection-provider.js.map +1 -1
- package/package.json +7 -7
- package/src/electron-browser/container-info-contribution.ts +46 -0
- package/src/electron-browser/dev-container-frontend-module.ts +5 -0
- package/src/electron-common/remote-container-connection-provider.ts +2 -0
- package/src/electron-node/dev-container-backend-module.ts +11 -0
- package/src/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.ts +68 -0
- package/src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts +82 -31
- package/src/electron-node/devcontainer-contributions/profile-file-modification-contribution.ts +35 -0
- package/src/electron-node/devcontainer-file.ts +32 -1
- package/src/electron-node/docker-container-service.ts +31 -23
- package/src/electron-node/remote-container-connection-provider.ts +26 -9
package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js
CHANGED
|
@@ -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 =
|
|
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
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
63
|
-
|
|
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 =
|
|
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
|
|
73
|
-
var _a;
|
|
85
|
+
async handlePostConnect(containerConfig, connection) {
|
|
74
86
|
if (!containerConfig.forwardPorts) {
|
|
75
87
|
return;
|
|
76
88
|
}
|
|
77
|
-
for (const
|
|
78
|
-
let
|
|
79
|
-
let
|
|
80
|
-
if (typeof
|
|
81
|
-
const parts =
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
87
|
-
hostPort = port.toString();
|
|
98
|
+
port = forward;
|
|
88
99
|
}
|
|
89
|
-
|
|
90
|
-
createOptions.HostConfig.PortBindings[portKey] = [{ HostPort: hostPort }];
|
|
100
|
+
this.portForwardingProvider.forwardPort(connection.localPort, { port, address });
|
|
91
101
|
}
|
|
92
102
|
}
|
|
93
103
|
};
|
|
94
|
-
ForwardPortsContribution =
|
|
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
|
|
114
|
+
var _a, _b;
|
|
101
115
|
if (!containerConfig.mounts) {
|
|
102
116
|
return;
|
|
103
117
|
}
|
|
104
|
-
createOptions.HostConfig.Mounts.push(...(
|
|
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 &&
|
|
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 =
|
|
135
|
+
exports.MountsContribution = MountsContribution;
|
|
136
|
+
exports.MountsContribution = MountsContribution = tslib_1.__decorate([
|
|
122
137
|
(0, inversify_1.injectable)()
|
|
123
138
|
], MountsContribution);
|
|
124
|
-
|
|
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
|
|
185
|
+
})(OutputHelper || (exports.OutputHelper = OutputHelper = {}));
|
|
133
186
|
//# sourceMappingURL=main-container-creation-contributions.js.map
|
package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js.map
CHANGED
|
@@ -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":";;;;AAgBA,
|
|
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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"}
|
package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts
ADDED
|
@@ -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
|
package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.d.ts.map
ADDED
|
@@ -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"}
|
package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js
ADDED
|
@@ -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
|
package/lib/electron-node/devcontainer-contributions/profile-file-modification-contribution.js.map
ADDED
|
@@ -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
|
|
5
|
+
export type DevContainerConfiguration = (((DockerfileContainer | ImageContainer) & (NonComposeContainerBase)) | ComposeContainer) & DevContainerCommon & {
|
|
6
6
|
location?: string;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
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":"AAgBA;;;GAGG;AACH,
|
|
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):
|
|
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;
|
|
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
|
-
|
|
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
|
|
85
|
+
return container;
|
|
95
86
|
}
|
|
96
87
|
};
|
|
97
|
-
|
|
88
|
+
exports.DockerContainerService = DockerContainerService;
|
|
89
|
+
tslib_1.__decorate([
|
|
98
90
|
(0, inversify_1.inject)(common_1.WorkspaceServer),
|
|
99
|
-
|
|
91
|
+
tslib_1.__metadata("design:type", Object)
|
|
100
92
|
], DockerContainerService.prototype, "workspaceServer", void 0);
|
|
101
|
-
|
|
93
|
+
tslib_1.__decorate([
|
|
102
94
|
(0, inversify_1.inject)(core_1.ContributionProvider),
|
|
103
95
|
(0, inversify_1.named)(exports.ContainerCreationContribution),
|
|
104
|
-
|
|
96
|
+
tslib_1.__metadata("design:type", Object)
|
|
105
97
|
], DockerContainerService.prototype, "containerCreationContributions", void 0);
|
|
106
|
-
|
|
98
|
+
tslib_1.__decorate([
|
|
107
99
|
(0, inversify_1.inject)(dev_container_file_service_1.DevContainerFileService),
|
|
108
|
-
|
|
100
|
+
tslib_1.__metadata("design:type", dev_container_file_service_1.DevContainerFileService)
|
|
109
101
|
], DockerContainerService.prototype, "devContainerFileService", void 0);
|
|
110
|
-
DockerContainerService =
|
|
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":";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;;;;AAEhF,
|
|
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":"
|
|
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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"}
|