@sumor/ssh-docker

ssh-docker

Un outil Sumor Cloud.
Plus de documentation

ssh-docker est un outil docker pour @sumor/ssh-tools

CI Test Couverture Audit

Installation

npm i @sumor/ssh-docker --save

Prérequis

Version de Node.JS

Nécessite la version Node.JS 18.x ou supérieure

Nécessite un module ES de Node.JS

Comme ce package est écrit en module ES, veuillez changer le code suivant dans votre fichier package.json :

{
  "type": "module"
}

Utilisation

Importer l'outil

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

Utiliser l'outil

import SSH from './ssh.js'

const ssh = new SSH(server)

await ssh.connect()

// Construction de l'image docker
const dossierSource = '/chemin/vers/dossier/source'
const nomImage = 'nom-image'
const version = '1.0.0'
await ssh.docker.buildImage(dossierSource, nomImage, version)

// Liste des images
const images = await ssh.docker.images()

// Image existante
const existe = await ssh.docker.existsImage(nomImage, version)

// Exécution d'un conteneur docker
await ssh.docker.run({
  nom: 'nom-conteneur',
  image: nomImage,
  version: version,
  ports: [
    {
      depuis: 443, // port du conteneur
      vers: 30123 // port de l'hôte
    }
  ],
  dossiers: [
    {
      depuis: '/usr/source/config', // dossier du conteneur
      vers: '/chemin/vers/dossier/config', // dossier de l'hôte
      enLectureSeule: true // optionnel, par défaut à false
    }
  ]
})

// Liste des conteneurs docker
const conteneurs = await ssh.docker.containers()

// Conteneur existant
const existe = await ssh.docker.exists('nom-conteneur')

// Exécuter une commande dans le conteneur
const resultat = await ssh.docker.exec('nom-conteneur', 'ls -al')

// Supprimer le conteneur docker
await ssh.docker.remove('nom-conteneur')

// Supprimer l'image docker
await ssh.docker.removeImage(nomImage, version)

await ssh.disconnect()