@sumor/ssh-docker
Advanced tools
Comparing version
{ | ||
"name": "@sumor/ssh-docker", | ||
"description": "ssh-docker is a docker tool for @sumor/ssh-tools", | ||
"version": "1.0.2", | ||
"version": "1.0.4", | ||
"license": "MIT", | ||
@@ -16,6 +16,5 @@ "repository": "sumor-cloud/ssh-docker", | ||
], | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"@jest/globals": "^29.7.0", | ||
"@sumor/ssh-tools": "^1.0.6", | ||
"@jest/globals": "^29.7.0", | ||
"eslint": "^8.57.0", | ||
@@ -25,2 +24,3 @@ "eslint-config-prettier": "^9.1.0", | ||
"eslint-plugin-prettier": "^5.1.3", | ||
"http-server": "^14.1.1", | ||
"husky": "^9.0.11", | ||
@@ -43,2 +43,3 @@ "jest": "^29.7.0", | ||
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --testMatch='**/test/**/*.test.js'", | ||
"test-node": "node --experimental-vm-modules node_modules/jest/bin/jest.js --testMatch='**/test/**/node.test.js'", | ||
"coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --testMatch='**/test/**/*.test.js'", | ||
@@ -51,4 +52,5 @@ "push-tag": "git push && git push --tags", | ||
"prepare": "husky", | ||
"check": "npm run autofix && npm run coverage" | ||
"check": "npm run autofix && npm run coverage", | ||
"view-coverage": "http-server output/coverage/ -p 8080" | ||
} | ||
} |
@@ -110,3 +110,11 @@ # ssh-docker | ||
// build node.js project | ||
const logs = await ssh.docker.buildNode('/path/to/source') | ||
// run node.js project | ||
const logs = await ssh.docker.runNode('container-name', '/path/to/source', { | ||
port | ||
}) | ||
await ssh.disconnect() | ||
``` |
import dockerCmd from './dockerCmd.js' | ||
import stringifyRunCmd from './stringifyRunCmd.js' | ||
import node from './node.js' | ||
export default ssh => { | ||
@@ -9,3 +11,5 @@ const apis = { | ||
async run(options) { | ||
return await this.cmd(stringifyRunCmd(options)) | ||
const cmd = stringifyRunCmd(options) | ||
console.log(cmd) | ||
return await this.cmd(cmd) | ||
}, | ||
@@ -74,3 +78,5 @@ async exists(id) { | ||
node(ssh, apis) | ||
return apis | ||
} |
export default options => { | ||
const { image, version, ports, folders, name } = options || {} | ||
const dockerRunStr = ['docker run -itd --restart=on-failure'] | ||
const { image, version, ports, folders, name, cmd, background } = options || {} | ||
const dockerRunStr = ['docker run'] | ||
if (background !== false) { | ||
dockerRunStr.push('-itd') | ||
dockerRunStr.push('--restart=on-failure') | ||
} else { | ||
dockerRunStr.push('-it') | ||
} | ||
if (folders) { | ||
@@ -21,3 +27,7 @@ for (const folder of folders) { | ||
dockerRunStr.push(`-d ${image}:${version}`) | ||
if (cmd) { | ||
const cmdString = JSON.stringify(cmd) | ||
dockerRunStr.push(`sh -c ${cmdString}`) | ||
} | ||
return dockerRunStr.join(' ') | ||
} |
11563
26.33%8
14.29%207
71.07%120
7.14%11
10%