creevey 0.10.28 → 0.10.30
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/dist/server/docker.d.ts +1 -0
- package/dist/server/docker.js +36 -1
- package/dist/server/docker.js.map +1 -1
- package/dist/server/selenium/selenoid.js +2 -1
- package/dist/server/selenium/selenoid.js.map +1 -1
- package/package.json +1 -1
- package/src/server/docker.ts +39 -1
- package/src/server/selenium/selenoid.ts +3 -2
package/dist/server/docker.d.ts
CHANGED
package/dist/server/docker.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getDockerSocketPath = getDockerSocketPath;
|
|
6
7
|
exports.pullImages = pullImages;
|
|
7
8
|
exports.buildImage = buildImage;
|
|
8
9
|
exports.runImage = runImage;
|
|
@@ -10,9 +11,43 @@ const tar_stream_1 = __importDefault(require("tar-stream"));
|
|
|
10
11
|
const loglevel_1 = __importDefault(require("loglevel"));
|
|
11
12
|
const stream_1 = require("stream");
|
|
12
13
|
const dockerode_1 = __importDefault(require("dockerode"));
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const os_1 = require("os");
|
|
16
|
+
const path_1 = require("path");
|
|
13
17
|
const logger_js_1 = require("./logger.js");
|
|
14
18
|
const context_js_1 = require("./worker/context.js");
|
|
15
|
-
|
|
19
|
+
function findDockerSocket() {
|
|
20
|
+
// List of possible docker.sock locations in order of preference
|
|
21
|
+
const possiblePaths = [
|
|
22
|
+
// Standard Linux location
|
|
23
|
+
'/var/run/docker.sock',
|
|
24
|
+
// Docker Desktop for Mac
|
|
25
|
+
(0, path_1.join)((0, os_1.homedir)(), '.docker', 'run', 'docker.sock'),
|
|
26
|
+
// Colima
|
|
27
|
+
(0, path_1.join)((0, os_1.homedir)(), '.colima', 'default', 'docker.sock'),
|
|
28
|
+
(0, path_1.join)((0, os_1.homedir)(), '.colima', 'docker.sock'),
|
|
29
|
+
// Podman
|
|
30
|
+
'/run/podman/podman.sock',
|
|
31
|
+
...(process.env.XDG_RUNTIME_DIR ? [(0, path_1.join)(process.env.XDG_RUNTIME_DIR, 'podman', 'podman.sock')] : []),
|
|
32
|
+
// Rancher Desktop
|
|
33
|
+
(0, path_1.join)((0, os_1.homedir)(), '.rd', 'docker.sock'),
|
|
34
|
+
// Orbstack
|
|
35
|
+
(0, path_1.join)((0, os_1.homedir)(), '.orbstack', 'run', 'docker.sock'),
|
|
36
|
+
];
|
|
37
|
+
for (const socketPath of possiblePaths) {
|
|
38
|
+
if ((0, fs_1.existsSync)(socketPath)) {
|
|
39
|
+
(0, logger_js_1.logger)().debug(`Found Docker socket at: ${socketPath}`);
|
|
40
|
+
return socketPath;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Fall back to default if no socket found
|
|
44
|
+
(0, logger_js_1.logger)().warn('No Docker socket found at known locations, using default');
|
|
45
|
+
}
|
|
46
|
+
const dockerSocketPath = findDockerSocket();
|
|
47
|
+
const docker = new dockerode_1.default(dockerSocketPath ? { socketPath: dockerSocketPath } : undefined);
|
|
48
|
+
function getDockerSocketPath() {
|
|
49
|
+
return dockerSocketPath ?? '/var/run/docker.sock';
|
|
50
|
+
}
|
|
16
51
|
class DevNull extends stream_1.Writable {
|
|
17
52
|
_write(_chunk, _encoding, callback) {
|
|
18
53
|
setImmediate(callback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/server/docker.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/server/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,12 +101,13 @@ async function startSelenoidContainer(config, debug) {
|
|
|
101
101
|
await (0, docker_js_1.pullImages)(images, pullOptions);
|
|
102
102
|
}
|
|
103
103
|
// TODO Allow pass custom options
|
|
104
|
+
const dockerSocketPath = (0, docker_js_1.getDockerSocketPath)();
|
|
104
105
|
const selenoidOptions = {
|
|
105
106
|
ExposedPorts: { '4444/tcp': {} },
|
|
106
107
|
HostConfig: {
|
|
107
108
|
PortBindings: { '4444/tcp': [{ HostPort: '4444' }] },
|
|
108
109
|
Binds: [
|
|
109
|
-
|
|
110
|
+
`${dockerSocketPath}:/var/run/docker.sock`,
|
|
110
111
|
`${await createSelenoidConfig(browsers, { useDocker: true })}:/etc/selenoid/:ro`,
|
|
111
112
|
],
|
|
112
113
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selenoid.js","sourceRoot":"","sources":["../../../src/server/selenium/selenoid.ts"],"names":[],"mappings":";;;;;AAkFA,0DA8BC;AAED,
|
|
1
|
+
{"version":3,"file":"selenoid.js","sourceRoot":"","sources":["../../../src/server/selenium/selenoid.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/server/docker.ts
CHANGED
|
@@ -2,11 +2,49 @@ import tar from 'tar-stream';
|
|
|
2
2
|
import Logger from 'loglevel';
|
|
3
3
|
import { Writable } from 'stream';
|
|
4
4
|
import Dockerode, { Container } from 'dockerode';
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import { homedir } from 'os';
|
|
7
|
+
import { join } from 'path';
|
|
5
8
|
import { DockerAuth } from '../types.js';
|
|
6
9
|
import { logger } from './logger.js';
|
|
7
10
|
import { setWorkerContainer } from './worker/context.js';
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
function findDockerSocket(): string | undefined {
|
|
13
|
+
// List of possible docker.sock locations in order of preference
|
|
14
|
+
const possiblePaths = [
|
|
15
|
+
// Standard Linux location
|
|
16
|
+
'/var/run/docker.sock',
|
|
17
|
+
// Docker Desktop for Mac
|
|
18
|
+
join(homedir(), '.docker', 'run', 'docker.sock'),
|
|
19
|
+
// Colima
|
|
20
|
+
join(homedir(), '.colima', 'default', 'docker.sock'),
|
|
21
|
+
join(homedir(), '.colima', 'docker.sock'),
|
|
22
|
+
// Podman
|
|
23
|
+
'/run/podman/podman.sock',
|
|
24
|
+
...(process.env.XDG_RUNTIME_DIR ? [join(process.env.XDG_RUNTIME_DIR, 'podman', 'podman.sock')] : []),
|
|
25
|
+
// Rancher Desktop
|
|
26
|
+
join(homedir(), '.rd', 'docker.sock'),
|
|
27
|
+
// Orbstack
|
|
28
|
+
join(homedir(), '.orbstack', 'run', 'docker.sock'),
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
for (const socketPath of possiblePaths) {
|
|
32
|
+
if (existsSync(socketPath)) {
|
|
33
|
+
logger().debug(`Found Docker socket at: ${socketPath}`);
|
|
34
|
+
return socketPath;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Fall back to default if no socket found
|
|
39
|
+
logger().warn('No Docker socket found at known locations, using default');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const dockerSocketPath = findDockerSocket();
|
|
43
|
+
const docker = new Dockerode(dockerSocketPath ? { socketPath: dockerSocketPath } : undefined);
|
|
44
|
+
|
|
45
|
+
export function getDockerSocketPath(): string | undefined {
|
|
46
|
+
return dockerSocketPath ?? '/var/run/docker.sock';
|
|
47
|
+
}
|
|
10
48
|
|
|
11
49
|
class DevNull extends Writable {
|
|
12
50
|
_write(_chunk: unknown, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {
|
|
@@ -5,7 +5,7 @@ import { mkdir, writeFile, copyFile } from 'fs/promises';
|
|
|
5
5
|
import { exec, chmod } from 'shelljs';
|
|
6
6
|
import { Config, BrowserConfigObject } from '../../types.js';
|
|
7
7
|
import { downloadBinary, getCreeveyCache, killTree } from '../utils.js';
|
|
8
|
-
import { pullImages, runImage } from '../docker.js';
|
|
8
|
+
import { pullImages, runImage, getDockerSocketPath } from '../docker.js';
|
|
9
9
|
import { subscribeOn } from '../messages.js';
|
|
10
10
|
import { removeWorkerContainer } from '../worker/context.js';
|
|
11
11
|
|
|
@@ -137,12 +137,13 @@ export async function startSelenoidContainer(config: Config, debug: boolean): Pr
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
// TODO Allow pass custom options
|
|
140
|
+
const dockerSocketPath = getDockerSocketPath();
|
|
140
141
|
const selenoidOptions = {
|
|
141
142
|
ExposedPorts: { '4444/tcp': {} },
|
|
142
143
|
HostConfig: {
|
|
143
144
|
PortBindings: { '4444/tcp': [{ HostPort: '4444' }] },
|
|
144
145
|
Binds: [
|
|
145
|
-
|
|
146
|
+
`${dockerSocketPath}:/var/run/docker.sock`,
|
|
146
147
|
`${await createSelenoidConfig(browsers, { useDocker: true })}:/etc/selenoid/:ro`,
|
|
147
148
|
],
|
|
148
149
|
},
|