@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)

// بناء مشروع node.js
const logs = await ssh.docker.buildNode('/path/to/source')

// تشغيل مشروع node.js
const logs = await ssh.docker.runNode('container-name', '/path/to/source', {
  port
})

await ssh.disconnect()