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 acima
Como esse 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(servidor)
await ssh.connect()
// construir imagem docker
const pastaFonte = '/caminho/para/pasta/fonte'
const nomeImagem = 'nome-imagem'
const versao = '1.0.0'
await ssh.docker.buildImage(pastaFonte, nomeImagem, versao)
// listar imagens
const imagens = await ssh.docker.images()
// verificar se a imagem existe
const existeImagem = await ssh.docker.existsImage(nomeImagem, versao)
// executar contêiner docker
await ssh.docker.run({
nome: 'nome-container',
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, padrão é falso
}
]
})
// listar contêineres docker
const contêineres = await ssh.docker.containers()
// verificar se o contêiner existe
const existeContêiner = await ssh.docker.exists('nome-container')
// executar comando no contêiner
const resultado = await ssh.docker.exec('nome-container', 'ls -al')
// excluir contêiner docker
await ssh.docker.remove('nome-container')
// excluir imagem docker
await ssh.docker.removeImage(nomeImagem, versao)
// construir projeto node.js
const logs = await ssh.docker.buildNode('/caminho/para/pasta/fonte')
// executar projeto node.js
const logs = await ssh.docker.runNode('nome-container', '/caminho/para/pasta/fonte', {
porta
})
await ssh.disconnect()