@sumor/ssh-docker

ssh-docker

أداة Sumor Cloud.
مزيد من الوثائق

ssh-docker هو أداة docker لـ @sumor/ssh-tools

CI Test Coverage Audit

التثبيت

npm i @sumor/ssh-docker --save

الشروط الأولية

إصدار Node.JS

يتطلب إصدار Node.JS 18.x أو أعلى

يتطلب إصدار Node.JS ES module

بما أن هذه الحزمة مكتوبة بتنسيق ES module، يرجى تغيير الكود التالي في ملف 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()

// بناء صورة docker
const sourceFolder = '/path/to/source/folder'
const imageName = 'image-name'
const version = '1.0.0'
await ssh.docker.buildImage(sourceFolder, imageName, version)

// قائمة الصور
const images = await ssh.docker.images()

// وجود صورة
const exists = await ssh.docker.existsImage(imageName, version)

// تشغيل حاوية docker
await ssh.docker.run({
  name: 'container-name',
  image: imageName,
  version: version,
  ports: [
    {
      from: 443, // منفذ الحاوية
      to: 30123 // منفذ المضيف
    }
  ],
  folders: [
    {
      from: '/usr/source/config', // مجلد الحاوية
      to: '/path/to/config/folder', // مجلد المضيف
      readOnly: true // اختياري، القيمة الافتراضية هي false
    }
  ]
})

// قائمة حاويات docker
const containers = await ssh.docker.containers()

// وجود حاوية
const exists = await ssh.docker.exists('container-name')

// تنفيذ أمر داخل الحاوية
const result = await ssh.docker.exec('container-name', 'ls -al')

// حذف حاوية docker
await ssh.docker.remove('container-name')

// حذف صورة docker
await ssh.docker.removeImage(imageName, version)

await ssh.disconnect()