Uma Ferramenta Sumor Cloud.
Documentação Adicional
ssh-docker é uma ferramenta Docker para @sumor/ssh-tools
npm i @sumor/ssh-docker --save
Requer Node.JS versão 18.x ou superior
Como este pacote é escrito em módulo ES,
por favor altere o seguinte código em seu arquivo package.json
:
{
"type": "module"
}
import SSHBasic from '@sumor/ssh-tools'
import docker from '@sumor/ssh-docker'
class SSH extends SSHBasic {
constructor(config) {
super(config)
this.addTool('docker', docker)
}
}
export default SSH
import SSH from './ssh.js'
const ssh = new SSH(server)
await ssh.connect()
// construir imagem docker
const sourceFolder = '/caminho/para/pasta/de/origem'
const nomeImagem = 'nome-imagem'
const versao = '1.0.0'
await ssh.docker.buildImage(sourceFolder, nomeImagem, versao)
// lista de imagens
const imagens = await ssh.docker.images()
// verificar se a imagem existe
const existe = await ssh.docker.existsImage(nomeImagem, versao)
// executar contêiner docker
await ssh.docker.run({
nome: 'nome-do-contêiner',
imagem: nomeImagem,
versao: versao,
portas: [
{
de: 443, // porta do contêiner
para: 30123 // porta do host
}
],
pastas: [
{
de: '/usr/source/config', // pasta do contêiner
para: '/caminho/para/pasta/config', // pasta do host
somenteLeitura: true // opcional, o padrão é falso
}
]
})
// lista de contêineres docker
const contêineres = await ssh.docker.containers()
// verificar se o contêiner existe
const existe = await ssh.docker.exists('nome-do-contêiner')
// executar comando no contêiner
const resultado = await ssh.docker.exec('nome-do-contêiner', 'ls -al')
// deletar contêiner docker
await ssh.docker.remove('nome-do-contêiner')
// deletar imagem docker
await ssh.docker.removeImage(nomeImagem, versao)
await ssh.disconnect()