@wocker/ws 1.0.24 → 1.0.25
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/{RootModule.d.ts → AppModule.d.ts} +1 -1
- package/lib/{RootModule.js → AppModule.js} +9 -22
- package/lib/controllers/ProjectController.d.ts +0 -1
- package/lib/controllers/ProjectController.js +0 -16
- package/lib/env.d.ts +1 -1
- package/lib/env.js +3 -3
- package/lib/main.js +2 -2
- package/lib/modules/core/index.d.ts +2 -0
- package/lib/modules/{app → core}/index.js +19 -6
- package/lib/modules/docker/index.d.ts +2 -1
- package/lib/modules/docker/index.js +5 -1
- package/lib/modules/docker/services/ComposeService.d.ts +32 -0
- package/lib/modules/docker/services/ComposeService.js +129 -0
- package/lib/modules/docker/services/DockerService.js +2 -24
- package/lib/modules/docker/services/ImageService.d.ts +2 -8
- package/lib/modules/docker/services/ImageService.js +15 -3
- package/lib/modules/docker/services/ModemService.d.ts +3 -2
- package/lib/modules/docker/services/ModemService.js +24 -5
- package/lib/modules/docker/services/ProtoService.js +2 -2
- package/lib/modules/docker/type/ComposeConfig.d.ts +12 -0
- package/lib/modules/docker/type/ComposeConfig.js +2 -0
- package/lib/modules/index.d.ts +1 -1
- package/lib/modules/index.js +1 -1
- package/lib/modules/keystore/services/KeystoreService.d.ts +2 -3
- package/lib/modules/keystore/services/KeystoreService.js +2 -4
- package/lib/modules/preset/controllers/PresetController.js +2 -1
- package/lib/modules/preset/controllers/PresetListener.d.ts +3 -2
- package/lib/modules/preset/controllers/PresetListener.js +6 -3
- package/lib/modules/preset/services/PresetService.js +11 -2
- package/lib/modules/project/controllers/ProjectController.d.ts +1 -0
- package/lib/modules/project/controllers/ProjectController.js +16 -0
- package/lib/modules/project/services/ProjectService.d.ts +8 -4
- package/lib/modules/project/services/ProjectService.js +50 -8
- package/lib/modules/proxy/services/ProxyService.js +4 -3
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/index.js +0 -1
- package/package.json +4 -3
- package/lib/modules/app/index.d.ts +0 -2
- package/lib/utils/followProgress2.d.ts +0 -1
- package/lib/utils/followProgress2.js +0 -63
- package/plugins/proxmox/Dockerfile +0 -35
- package/plugins/proxy/Dockerfile +0 -25
- package/plugins/proxy/Procfile +0 -2
- package/plugins/proxy/bin/wocker-create-ca +0 -19
- package/plugins/proxy/bin/wocker-create-cert +0 -38
- package/plugins/proxy/bin/wocker-create-domains +0 -21
- package/presets/shopify/Dockerfile +0 -160
- package/presets/shopify/bin/compare-version +0 -3
- package/presets/shopify/config.json +0 -26
- package/presets/shopify/etc/apache2/apache2.conf +0 -230
- package/presets/shopify/etc/apache2/mods-available/mpm_prefork.conf +0 -16
- package/presets/shopify/etc/apache2/sites-available/000-default.conf +0 -21
- package/proto/buildkit.proto +0 -55
- package/proto/solver/pb/ops.proto +0 -443
|
@@ -81,13 +81,14 @@ let PresetController = class PresetController {
|
|
|
81
81
|
await this.dockerService.imageRm(imageName);
|
|
82
82
|
}
|
|
83
83
|
await this.dockerService.buildImage({
|
|
84
|
+
version: this.appConfigService.isExperimentalEnabled("buildKit") ? "2" : "1",
|
|
84
85
|
tag: imageName,
|
|
85
86
|
labels: {
|
|
86
87
|
presetName: preset.name
|
|
87
88
|
},
|
|
88
89
|
buildArgs: buildArgs,
|
|
89
90
|
context: preset.path,
|
|
90
|
-
|
|
91
|
+
dockerfile: preset.dockerfile
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
async presets() {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { EventService, Project } from "@wocker/core";
|
|
1
|
+
import { EventService, Project, AppConfigService } from "@wocker/core";
|
|
2
2
|
import { DockerService } from "../../docker";
|
|
3
3
|
import { PresetRepository } from "../repositories/PresetRepository";
|
|
4
4
|
import { PresetService } from "../services/PresetService";
|
|
5
5
|
export declare class PresetListener {
|
|
6
|
+
protected readonly appConfigService: AppConfigService;
|
|
6
7
|
protected readonly eventService: EventService;
|
|
7
8
|
protected readonly dockerService: DockerService;
|
|
8
9
|
protected readonly presetRepository: PresetRepository;
|
|
9
10
|
protected readonly presetService: PresetService;
|
|
10
|
-
constructor(eventService: EventService, dockerService: DockerService, presetRepository: PresetRepository, presetService: PresetService);
|
|
11
|
+
constructor(appConfigService: AppConfigService, eventService: EventService, dockerService: DockerService, presetRepository: PresetRepository, presetService: PresetService);
|
|
11
12
|
onInit(project: Project): Promise<void>;
|
|
12
13
|
protected onRebuild(project: Project): Promise<void>;
|
|
13
14
|
protected onBeforeStart(project: Project): Promise<void>;
|
|
@@ -17,7 +17,8 @@ const PresetRepository_1 = require("../repositories/PresetRepository");
|
|
|
17
17
|
const PresetService_1 = require("../services/PresetService");
|
|
18
18
|
const utils_2 = require("../../../utils");
|
|
19
19
|
let PresetListener = class PresetListener {
|
|
20
|
-
constructor(eventService, dockerService, presetRepository, presetService) {
|
|
20
|
+
constructor(appConfigService, eventService, dockerService, presetRepository, presetService) {
|
|
21
|
+
this.appConfigService = appConfigService;
|
|
21
22
|
this.eventService = eventService;
|
|
22
23
|
this.dockerService = dockerService;
|
|
23
24
|
this.presetRepository = presetRepository;
|
|
@@ -118,13 +119,14 @@ let PresetListener = class PresetListener {
|
|
|
118
119
|
project.imageName = this.presetService.getImageNameForProject(project, preset);
|
|
119
120
|
if (!await this.dockerService.imageExists(project.imageName)) {
|
|
120
121
|
await this.dockerService.buildImage({
|
|
122
|
+
version: this.appConfigService.isExperimentalEnabled("buildKit") ? "2" : "1",
|
|
121
123
|
tag: project.imageName,
|
|
122
124
|
labels: {
|
|
123
125
|
presetName: preset.name
|
|
124
126
|
},
|
|
125
127
|
buildArgs: project.buildArgs,
|
|
126
128
|
context: preset.path,
|
|
127
|
-
|
|
129
|
+
dockerfile: preset.dockerfile
|
|
128
130
|
});
|
|
129
131
|
}
|
|
130
132
|
}
|
|
@@ -133,7 +135,8 @@ let PresetListener = class PresetListener {
|
|
|
133
135
|
exports.PresetListener = PresetListener;
|
|
134
136
|
exports.PresetListener = PresetListener = __decorate([
|
|
135
137
|
(0, core_1.Controller)(),
|
|
136
|
-
__metadata("design:paramtypes", [core_1.
|
|
138
|
+
__metadata("design:paramtypes", [core_1.AppConfigService,
|
|
139
|
+
core_1.EventService,
|
|
137
140
|
docker_1.DockerService,
|
|
138
141
|
PresetRepository_1.PresetRepository,
|
|
139
142
|
PresetService_1.PresetService])
|
|
@@ -40,18 +40,27 @@ let PresetService = class PresetService {
|
|
|
40
40
|
break;
|
|
41
41
|
}
|
|
42
42
|
case "select": {
|
|
43
|
+
const options = (0, utils_1.normalizeOptions)(config.options);
|
|
44
|
+
const defaultValue = config.multiple ? options.reduce((defaultValue, option) => {
|
|
45
|
+
if (values[option.value] === "true") {
|
|
46
|
+
return [
|
|
47
|
+
...defaultValue,
|
|
48
|
+
option.value
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
return defaultValue;
|
|
52
|
+
}, []) : values[name];
|
|
43
53
|
const result = await (0, utils_1.promptSelect)({
|
|
44
54
|
required: config.required,
|
|
45
55
|
multiple: config.multiple,
|
|
46
56
|
message: config.message,
|
|
47
57
|
options: config.options,
|
|
48
|
-
default:
|
|
58
|
+
default: defaultValue
|
|
49
59
|
});
|
|
50
60
|
if (!config.multiple) {
|
|
51
61
|
values[name] = result;
|
|
52
62
|
}
|
|
53
63
|
else {
|
|
54
|
-
const options = (0, utils_1.normalizeOptions)(config.options);
|
|
55
64
|
for (const option of options) {
|
|
56
65
|
if (result.includes(option.value)) {
|
|
57
66
|
values[option.value] = "true";
|
|
@@ -10,4 +10,5 @@ export declare class ProjectController {
|
|
|
10
10
|
start(name?: string, restart?: boolean, build?: boolean, attach?: boolean): Promise<void>;
|
|
11
11
|
stop(name?: string): Promise<void>;
|
|
12
12
|
eject(name?: string): Promise<void>;
|
|
13
|
+
exec(command?: string[], name?: string): Promise<void>;
|
|
13
14
|
}
|
|
@@ -82,6 +82,10 @@ let ProjectController = class ProjectController {
|
|
|
82
82
|
delete project.imageName;
|
|
83
83
|
project.save();
|
|
84
84
|
}
|
|
85
|
+
async exec(command, name) {
|
|
86
|
+
const project = this.projectService.get(name);
|
|
87
|
+
await this.projectService.exec(project, command);
|
|
88
|
+
}
|
|
85
89
|
};
|
|
86
90
|
exports.ProjectController = ProjectController;
|
|
87
91
|
__decorate([
|
|
@@ -117,6 +121,18 @@ __decorate([
|
|
|
117
121
|
__metadata("design:paramtypes", [String]),
|
|
118
122
|
__metadata("design:returntype", Promise)
|
|
119
123
|
], ProjectController.prototype, "eject", null);
|
|
124
|
+
__decorate([
|
|
125
|
+
(0, core_1.Command)("exec [...command]"),
|
|
126
|
+
__param(0, (0, core_1.Param)("command")),
|
|
127
|
+
__param(1, (0, core_1.Option)("name", {
|
|
128
|
+
type: "string",
|
|
129
|
+
alias: "n",
|
|
130
|
+
description: "The name of the project"
|
|
131
|
+
})),
|
|
132
|
+
__metadata("design:type", Function),
|
|
133
|
+
__metadata("design:paramtypes", [Array, String]),
|
|
134
|
+
__metadata("design:returntype", Promise)
|
|
135
|
+
], ProjectController.prototype, "exec", null);
|
|
120
136
|
exports.ProjectController = ProjectController = __decorate([
|
|
121
137
|
(0, core_1.Controller)(),
|
|
122
138
|
(0, core_1.Description)("Project commands"),
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { Project, AppConfigService, EventService, ProjectService as CoreProjectService, ProjectServiceSearchParams as SearchParams } from "@wocker/core";
|
|
2
|
-
import {
|
|
3
|
-
import { DockerService } from "../../docker";
|
|
1
|
+
import { Project, AppConfigService, EventService, ProcessService, ProjectService as CoreProjectService, ProjectServiceSearchParams as SearchParams, LogService } from "@wocker/core";
|
|
2
|
+
import { DockerService, ComposeService } from "../../docker";
|
|
4
3
|
import { PresetService, PresetRepository } from "../../preset";
|
|
4
|
+
import { ProjectRepository } from "../repositories/ProjectRepository";
|
|
5
5
|
export declare class ProjectService extends CoreProjectService {
|
|
6
6
|
protected readonly appConfigService: AppConfigService;
|
|
7
|
+
protected readonly processService: ProcessService;
|
|
7
8
|
protected readonly eventService: EventService;
|
|
8
9
|
protected readonly dockerService: DockerService;
|
|
10
|
+
protected readonly composeService: ComposeService;
|
|
9
11
|
protected readonly projectRepository: ProjectRepository;
|
|
10
12
|
protected readonly presetService: PresetService;
|
|
11
13
|
protected readonly presetRepository: PresetRepository;
|
|
12
|
-
|
|
14
|
+
protected readonly logService: LogService;
|
|
15
|
+
constructor(appConfigService: AppConfigService, processService: ProcessService, eventService: EventService, dockerService: DockerService, composeService: ComposeService, projectRepository: ProjectRepository, presetService: PresetService, presetRepository: PresetRepository, logService: LogService);
|
|
13
16
|
get(name?: string): Project;
|
|
14
17
|
search(params?: SearchParams): Project[];
|
|
15
18
|
searchOne(params?: SearchParams): Project | null;
|
|
@@ -17,5 +20,6 @@ export declare class ProjectService extends CoreProjectService {
|
|
|
17
20
|
start(project: Project, restart?: boolean, rebuild?: boolean, attach?: boolean): Promise<void>;
|
|
18
21
|
stop(project: Project): Promise<void>;
|
|
19
22
|
build(project: Project, rebuild?: boolean): Promise<void>;
|
|
23
|
+
exec(project: Project, command: string[]): Promise<void>;
|
|
20
24
|
logs(project: Project, detach?: boolean): Promise<void>;
|
|
21
25
|
}
|
|
@@ -11,30 +11,33 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ProjectService = void 0;
|
|
13
13
|
const core_1 = require("@wocker/core");
|
|
14
|
-
const ProjectRepository_1 = require("../repositories/ProjectRepository");
|
|
15
14
|
const docker_1 = require("../../docker");
|
|
16
15
|
const preset_1 = require("../../preset");
|
|
16
|
+
const ProjectRepository_1 = require("../repositories/ProjectRepository");
|
|
17
17
|
let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
18
|
-
constructor(appConfigService, eventService, dockerService, projectRepository, presetService, presetRepository) {
|
|
18
|
+
constructor(appConfigService, processService, eventService, dockerService, composeService, projectRepository, presetService, presetRepository, logService) {
|
|
19
19
|
super();
|
|
20
20
|
this.appConfigService = appConfigService;
|
|
21
|
+
this.processService = processService;
|
|
21
22
|
this.eventService = eventService;
|
|
22
23
|
this.dockerService = dockerService;
|
|
24
|
+
this.composeService = composeService;
|
|
23
25
|
this.projectRepository = projectRepository;
|
|
24
26
|
this.presetService = presetService;
|
|
25
27
|
this.presetRepository = presetRepository;
|
|
28
|
+
this.logService = logService;
|
|
26
29
|
}
|
|
27
30
|
get(name) {
|
|
28
31
|
const project = name
|
|
29
32
|
? this.projectRepository.searchOne({ name })
|
|
30
33
|
: this.projectRepository.searchOne({
|
|
31
|
-
path: this.
|
|
34
|
+
path: this.processService.pwd()
|
|
32
35
|
});
|
|
33
36
|
if (!project) {
|
|
34
37
|
throw new Error("Project not found");
|
|
35
38
|
}
|
|
36
39
|
if (name) {
|
|
37
|
-
this.
|
|
40
|
+
this.processService.chdir(project.path);
|
|
38
41
|
}
|
|
39
42
|
return project;
|
|
40
43
|
}
|
|
@@ -88,6 +91,10 @@ let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
|
88
91
|
break;
|
|
89
92
|
}
|
|
90
93
|
case core_1.PROJECT_TYPE_COMPOSE: {
|
|
94
|
+
await this.composeService.up({
|
|
95
|
+
context: project.path,
|
|
96
|
+
composefile: project.composefile
|
|
97
|
+
});
|
|
91
98
|
break;
|
|
92
99
|
}
|
|
93
100
|
}
|
|
@@ -100,6 +107,8 @@ let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
|
100
107
|
case core_1.PROJECT_TYPE_PRESET:
|
|
101
108
|
await this.dockerService.attach(project.containerName);
|
|
102
109
|
break;
|
|
110
|
+
case core_1.PROJECT_TYPE_COMPOSE:
|
|
111
|
+
break;
|
|
103
112
|
}
|
|
104
113
|
}
|
|
105
114
|
}
|
|
@@ -111,8 +120,13 @@ let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
|
111
120
|
case core_1.PROJECT_TYPE_PRESET:
|
|
112
121
|
await this.dockerService.removeContainer(project.containerName);
|
|
113
122
|
break;
|
|
114
|
-
case core_1.PROJECT_TYPE_COMPOSE:
|
|
123
|
+
case core_1.PROJECT_TYPE_COMPOSE: {
|
|
124
|
+
await this.composeService.down({
|
|
125
|
+
context: project.path,
|
|
126
|
+
composefile: project.composefile
|
|
127
|
+
});
|
|
115
128
|
break;
|
|
129
|
+
}
|
|
116
130
|
}
|
|
117
131
|
await this.eventService.emit("project:stop", project);
|
|
118
132
|
}
|
|
@@ -129,10 +143,11 @@ let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
|
129
143
|
}
|
|
130
144
|
if (!await this.dockerService.imageExists(project.imageName)) {
|
|
131
145
|
await this.dockerService.buildImage({
|
|
146
|
+
version: this.appConfigService.isExperimentalEnabled("buildKit") ? "2" : "1",
|
|
132
147
|
tag: project.imageName,
|
|
133
148
|
buildArgs: project.buildArgs,
|
|
134
149
|
context: project.path,
|
|
135
|
-
|
|
150
|
+
dockerfile: project.dockerfile
|
|
136
151
|
});
|
|
137
152
|
}
|
|
138
153
|
break;
|
|
@@ -154,24 +169,48 @@ let ProjectService = class ProjectService extends core_1.ProjectService {
|
|
|
154
169
|
}
|
|
155
170
|
if (!await this.dockerService.imageExists(project.imageName)) {
|
|
156
171
|
await this.dockerService.buildImage({
|
|
172
|
+
version: this.appConfigService.isExperimentalEnabled("buildKit") ? "2" : "1",
|
|
157
173
|
tag: project.imageName,
|
|
158
174
|
labels: {
|
|
159
175
|
"org.wocker.preset": preset.name
|
|
160
176
|
},
|
|
161
177
|
buildArgs: project.buildArgs,
|
|
162
178
|
context: preset.path,
|
|
163
|
-
|
|
179
|
+
dockerfile: preset.dockerfile
|
|
164
180
|
});
|
|
165
181
|
}
|
|
166
182
|
}
|
|
167
183
|
break;
|
|
168
184
|
}
|
|
169
185
|
case core_1.PROJECT_TYPE_COMPOSE: {
|
|
186
|
+
await this.composeService.build({
|
|
187
|
+
context: project.path,
|
|
188
|
+
composefile: project.composefile
|
|
189
|
+
});
|
|
170
190
|
break;
|
|
171
191
|
}
|
|
172
192
|
}
|
|
173
193
|
await this.eventService.emit("project:build", project, rebuild);
|
|
174
194
|
}
|
|
195
|
+
async exec(project, command) {
|
|
196
|
+
switch (project.type) {
|
|
197
|
+
case core_1.PROJECT_TYPE_IMAGE:
|
|
198
|
+
case core_1.PROJECT_TYPE_DOCKERFILE:
|
|
199
|
+
case core_1.PROJECT_TYPE_PRESET:
|
|
200
|
+
await this.dockerService.exec(project.containerName, command, true);
|
|
201
|
+
break;
|
|
202
|
+
case core_1.PROJECT_TYPE_COMPOSE: {
|
|
203
|
+
const [service, ...args] = command;
|
|
204
|
+
await this.composeService.exec({
|
|
205
|
+
service,
|
|
206
|
+
args,
|
|
207
|
+
context: project.path,
|
|
208
|
+
composefile: project.composefile
|
|
209
|
+
});
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
175
214
|
async logs(project, detach) {
|
|
176
215
|
switch (project.type) {
|
|
177
216
|
case core_1.PROJECT_TYPE_IMAGE:
|
|
@@ -203,9 +242,12 @@ exports.ProjectService = ProjectService;
|
|
|
203
242
|
exports.ProjectService = ProjectService = __decorate([
|
|
204
243
|
(0, core_1.Injectable)("PROJECT_SERVICE"),
|
|
205
244
|
__metadata("design:paramtypes", [core_1.AppConfigService,
|
|
245
|
+
core_1.ProcessService,
|
|
206
246
|
core_1.EventService,
|
|
207
247
|
docker_1.DockerService,
|
|
248
|
+
docker_1.ComposeService,
|
|
208
249
|
ProjectRepository_1.ProjectRepository,
|
|
209
250
|
preset_1.PresetService,
|
|
210
|
-
preset_1.PresetRepository
|
|
251
|
+
preset_1.PresetRepository,
|
|
252
|
+
core_1.LogService])
|
|
211
253
|
], ProjectService);
|
|
@@ -145,12 +145,13 @@ let ProxyService = class ProxyService extends core_1.ProxyService {
|
|
|
145
145
|
await this.dockerService.imageRm(oldImage);
|
|
146
146
|
}
|
|
147
147
|
await this.dockerService.buildImage({
|
|
148
|
+
version: this.appConfigService.isExperimentalEnabled("buildKit") ? "2" : "1",
|
|
148
149
|
tag: this.imageName,
|
|
149
|
-
context: Path.join(env_1.PLUGINS_DIR, "proxy"),
|
|
150
|
-
src: "./Dockerfile",
|
|
151
150
|
buildArgs: {
|
|
152
151
|
SSH_PASSWORD: this.appConfigService.getMeta("PROXY_SSH_PASSWORD")
|
|
153
|
-
}
|
|
152
|
+
},
|
|
153
|
+
context: Path.join(env_1.PLUGINS_DIR, "proxy"),
|
|
154
|
+
dockerfile: "./Dockerfile"
|
|
154
155
|
});
|
|
155
156
|
}
|
|
156
157
|
async logs() {
|
package/lib/utils/index.d.ts
CHANGED
package/lib/utils/index.js
CHANGED
|
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./escapeRegExp"), exports);
|
|
18
18
|
__exportStar(require("./exec"), exports);
|
|
19
|
-
__exportStar(require("./followProgress2"), exports);
|
|
20
19
|
__exportStar(require("./get-cursor-position"), exports);
|
|
21
20
|
__exportStar(require("./injectVariables"), exports);
|
|
22
21
|
__exportStar(require("./parse-table"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wocker/ws",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.25",
|
|
4
4
|
"author": "Kris Papercut <krispcut@gmail.com>",
|
|
5
5
|
"description": "Docker workspace for web projects",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,12 +33,13 @@
|
|
|
33
33
|
"make-coverage-badge": "make-coverage-badge"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@wocker/core": "1.0.
|
|
36
|
+
"@wocker/core": "1.0.25",
|
|
37
37
|
"@wocker/utils": "^2.0.3",
|
|
38
38
|
"async-mutex": "^0.4.0",
|
|
39
39
|
"axios": "^1.6.7",
|
|
40
40
|
"child_process": "^1.0.2",
|
|
41
41
|
"cli-table3": "^0.6.2",
|
|
42
|
+
"docker-compose": "^1.2.0",
|
|
42
43
|
"dockerode": "^4.0.2",
|
|
43
44
|
"fs": "^0.0.1-security",
|
|
44
45
|
"keytar": "^7.9.0",
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
"@types/jest": "^29.5.14",
|
|
55
56
|
"@types/md5": "^2.3.2",
|
|
56
57
|
"@types/mute-stream": "^0.0.4",
|
|
57
|
-
"@types/node": "^
|
|
58
|
+
"@types/node": "^24.0.13",
|
|
58
59
|
"@types/unzipper": "^0.10.10",
|
|
59
60
|
"@wocker/testing": "1.0.2",
|
|
60
61
|
"jest": "^29.7.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const followProgress2: (stream: NodeJS.ReadableStream) => Promise<void>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.followProgress2 = void 0;
|
|
7
|
-
const protobufjs_1 = __importDefault(require("protobufjs"));
|
|
8
|
-
const yoctocolors_cjs_1 = __importDefault(require("yoctocolors-cjs"));
|
|
9
|
-
const env_1 = require("../env");
|
|
10
|
-
const followProgress2 = async (stream) => {
|
|
11
|
-
const root = await protobufjs_1.default.load([
|
|
12
|
-
`${env_1.ROOT_DIR}/proto/solver/pb/ops.proto`,
|
|
13
|
-
`${env_1.ROOT_DIR}/proto/buildkit.proto`
|
|
14
|
-
]);
|
|
15
|
-
const StatusResponse = root.lookupType("moby.buildkit.v1.StatusResponse");
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
let isEnded = false;
|
|
18
|
-
let success = 0, error = 0;
|
|
19
|
-
const handleEnd = () => {
|
|
20
|
-
if (!isEnded) {
|
|
21
|
-
isEnded = true;
|
|
22
|
-
console.log(`success: ${success} errors: ${error}`);
|
|
23
|
-
resolve();
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
stream.on("data", (data) => {
|
|
28
|
-
const content = data.toString().replace(/}\s*\{/g, '},{'), items = JSON.parse(`[${content}]`);
|
|
29
|
-
for (const item of items) {
|
|
30
|
-
switch (item.id) {
|
|
31
|
-
case "moby.buildkit.trace": {
|
|
32
|
-
if (!item.aux) {
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
let buffer = Buffer.from(item.aux, "base64");
|
|
36
|
-
try {
|
|
37
|
-
const decoded = StatusResponse.decode(buffer);
|
|
38
|
-
const obj = StatusResponse.toObject(decoded, {
|
|
39
|
-
enums: String,
|
|
40
|
-
longs: String,
|
|
41
|
-
bytes: String,
|
|
42
|
-
defaults: true,
|
|
43
|
-
});
|
|
44
|
-
console.dir(obj, { depth: null });
|
|
45
|
-
success++;
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
error++;
|
|
49
|
-
console.error(yoctocolors_cjs_1.default.red(`Error: ${err.message}`));
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
default:
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
stream.on("end", handleEnd);
|
|
59
|
-
stream.on("close", handleEnd);
|
|
60
|
-
stream.on("error", reject);
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
exports.followProgress2 = followProgress2;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
FROM debian:stable
|
|
2
|
-
|
|
3
|
-
RUN apt-get update \
|
|
4
|
-
&& apt-get install -y wget
|
|
5
|
-
|
|
6
|
-
RUN apt-get update && apt-get install -y gnupg
|
|
7
|
-
|
|
8
|
-
RUN echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" | tee /etc/apt/sources.list.d/pve-install-repo.list
|
|
9
|
-
|
|
10
|
-
#RUN wget http://download.proxmox.com/debian/proxmox-release-bullseye.gpg
|
|
11
|
-
RUN wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg
|
|
12
|
-
RUN apt-key add proxmox-ve-release-6.x.gpg
|
|
13
|
-
|
|
14
|
-
RUN echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
|
|
15
|
-
|
|
16
|
-
RUN apt update
|
|
17
|
-
RUN apt install proxmox-ve postfix open-iscsi
|
|
18
|
-
|
|
19
|
-
# RUN apt remove os-prober
|
|
20
|
-
|
|
21
|
-
#RUN mv proxmox-release-bullseye.gpg /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
|
|
22
|
-
|
|
23
|
-
#RUN chmod +r /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
|
|
24
|
-
|
|
25
|
-
#RUN apt update
|
|
26
|
-
|
|
27
|
-
#RUN apt full-upgrade -y
|
|
28
|
-
|
|
29
|
-
#RUN apt update
|
|
30
|
-
|
|
31
|
-
#RUN echo "deb http://download.proxmox.com/debian/ceph-pacific bullseye main" | tee /etc/apt/sources.list.d/ceph.list
|
|
32
|
-
|
|
33
|
-
# RUN apt-get install -y proxmox-ve postfix open-iscsi
|
|
34
|
-
|
|
35
|
-
#RUN apt update
|
package/plugins/proxy/Dockerfile
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
FROM nginxproxy/nginx-proxy:1.6.4-alpine
|
|
2
|
-
|
|
3
|
-
ARG SSH_PASSWORD=''
|
|
4
|
-
|
|
5
|
-
COPY ./bin/wocker-create-ca /usr/local/bin/wocker-create-ca
|
|
6
|
-
COPY ./bin/wocker-create-cert /usr/local/bin/wocker-create-cert
|
|
7
|
-
COPY ./bin/wocker-create-domains /usr/local/bin/wocker-create-domains
|
|
8
|
-
|
|
9
|
-
RUN chmod +x /usr/local/bin/wocker-create-ca && \
|
|
10
|
-
chmod +x /usr/local/bin/wocker-create-cert && \
|
|
11
|
-
chmod +x /usr/local/bin/wocker-create-domains
|
|
12
|
-
|
|
13
|
-
RUN if [ -n "$SSH_PASSWORD" ]; then \
|
|
14
|
-
apk update && apk add --no-cache openssh; \
|
|
15
|
-
mkdir -p /var/run/sshd; \
|
|
16
|
-
echo "root:$SSH_PASSWORD" | chpasswd; \
|
|
17
|
-
sed -i 's/AllowTcpForwarding no/AllowTcpForwarding yes/' /etc/ssh/sshd_config; \
|
|
18
|
-
sed -i 's/GatewayPorts no/GatewayPorts yes/' /etc/ssh/sshd_config; \
|
|
19
|
-
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config; \
|
|
20
|
-
sed -i 's/#UsePAM yes/UsePAM no/' /etc/ssh/sshd_config; \
|
|
21
|
-
ssh-keygen -A; \
|
|
22
|
-
echo "sshd: /usr/sbin/sshd -D" >> /app/Procfile; \
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
EXPOSE 22
|
package/plugins/proxy/Procfile
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
CA_DIR=/etc/nginx/ca-certs
|
|
4
|
-
|
|
5
|
-
if [ ! -f $CA_DIR/Wocker-CA.key ]; then
|
|
6
|
-
mkdir -p $CA_DIR
|
|
7
|
-
|
|
8
|
-
openssl req -x509 -nodes -new -sha256 \
|
|
9
|
-
-days 1024 \
|
|
10
|
-
-newkey rsa:2048 \
|
|
11
|
-
-keyout $CA_DIR/Wocker-CA.key \
|
|
12
|
-
-out $CA_DIR/Wocker-CA.pem \
|
|
13
|
-
-subj "/C=UA/ST=Kyiv/O=Wocker/CN=Wocker-CA"
|
|
14
|
-
|
|
15
|
-
openssl x509 \
|
|
16
|
-
-outform pem \
|
|
17
|
-
-in $CA_DIR/Wocker-CA.pem \
|
|
18
|
-
-out $CA_DIR/Wocker-CA.crt
|
|
19
|
-
fi
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
if [ -z "$1" ]; then
|
|
4
|
-
echo "Usage: $0 <name>"
|
|
5
|
-
exit 1
|
|
6
|
-
fi
|
|
7
|
-
|
|
8
|
-
NAME=$1
|
|
9
|
-
CA_DIR=/etc/nginx/ca-certs
|
|
10
|
-
CERT_DIR=/etc/nginx/certs
|
|
11
|
-
DAYS_VALID=365
|
|
12
|
-
COUNTRY="UA"
|
|
13
|
-
STATE="Kyiv"
|
|
14
|
-
CITY="Kyiv"
|
|
15
|
-
ORGANIZATION="Wocker"
|
|
16
|
-
ORG_UNIT="Wocker"
|
|
17
|
-
COMMON_NAME=$NAME
|
|
18
|
-
|
|
19
|
-
mkdir -p $CERT_DIR
|
|
20
|
-
|
|
21
|
-
openssl req \
|
|
22
|
-
-new \
|
|
23
|
-
-nodes \
|
|
24
|
-
-newkey rsa:2048 \
|
|
25
|
-
-keyout $CERT_DIR/$NAME.key \
|
|
26
|
-
-out $CERT_DIR/$NAME.csr \
|
|
27
|
-
-subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORG_UNIT/CN=$COMMON_NAME"
|
|
28
|
-
|
|
29
|
-
openssl x509 \
|
|
30
|
-
-req \
|
|
31
|
-
-sha256 \
|
|
32
|
-
-days 1024 \
|
|
33
|
-
-in $CERT_DIR/$NAME.csr \
|
|
34
|
-
-CA $CA_DIR/Wocker-CA.pem \
|
|
35
|
-
-CAkey $CA_DIR/Wocker-CA.key \
|
|
36
|
-
-CAcreateserial \
|
|
37
|
-
-extfile $CERT_DIR/$NAME.ext \
|
|
38
|
-
-out $CERT_DIR/$NAME.crt
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
NAME=$1
|
|
4
|
-
CERT_DIR=/etc/nginx/certs
|
|
5
|
-
|
|
6
|
-
shift
|
|
7
|
-
|
|
8
|
-
CONTENT="authorityKeyIdentifier=keyid,issuer
|
|
9
|
-
basicConstraints=CA:FALSE
|
|
10
|
-
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
|
|
11
|
-
subjectAltName = @alt_names
|
|
12
|
-
[alt_names]"
|
|
13
|
-
|
|
14
|
-
index=1
|
|
15
|
-
for arg in "$@"; do
|
|
16
|
-
CONTENT="$CONTENT
|
|
17
|
-
DNS.$index = $arg"
|
|
18
|
-
((index++))
|
|
19
|
-
done
|
|
20
|
-
|
|
21
|
-
echo "$CONTENT" > $CERT_DIR/$NAME.ext
|