انتقل إلى المحتوى الرئيسي

Docker على Linux/macOS

في هذا الدليل، سوف تقوم بنشر MyEMS باستخدام Docker على Linux (أو macOS).

المتطلبات الأساسية​

  • تثبيت docker و npm على المضيف (host).
  • تثبيت خادم MySQL.
  • إمكانية الاتصال بقاعدة بيانات MySQL من المضيف الذي يعمل عليه محرك Docker.
  • متطلبات الأجهزة: لا تقل عن 4 جيجابايت من الذاكرة العشوائية (RAM) و 20 جيجابايت من مساحة التخزين (للقاعدة البيانات وحاويات Docker).

استنساخ كود المصدر:

cd ~
git clone https://github.com/myems/myems

الخطوة 1: قاعدة البيانات​

انظر إلى قاعدة البيانات

الخطوة 2: myems-api​

في هذا القسم، سوف تقوم بتثبيت myems-api على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-api /
cd /myems-api
  • إنشاء ملف .env بناءً على ملف example.env
احذر

قم يدوياً باستبدال 127.0.0.1 بعنوان IP الفعلي للمضيف (HOST).

cp example.env .env
  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-api .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-api .
  • تشغيل حاوية Docker

على المضيف، أنشئ مجلد ملفات تحميل مشترك (share upload file folder):

mkdir /myems-upload

أنشئ حاوية، ربط المجلد المشترك بالحاوية، وكذلك ربط ملف .env بالحاوية:

docker run -d -p 8000:8000 -v /myems-upload:/var/www/myems-admin/upload -v /myems-api/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-api myems/myems-api
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -p نشر منفذ (منافذ) الحاوية على المضيف، 8000:8000 (مضيف:حاوية) ربط منفذ 8000 (يمين) للحاوية بمنفذ TCP 8000 (يسار) على جهاز المضيف.

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

المسار المطلق قبل النقطتين (:) هو للمسار على المضيف وقد يختلف في نظامك. المسار المطلق بعد النقطتين (:) هو للمسار في الحاوية ولا يمكن تغييره. من خلال تمرير .env كمعلمة ربط الملفات (bind-mount parameter)، يمكنك تغيير قيم التكوين لاحقاً. إذا قمت بتغيير ملف .env، أعد تشغيل الحاوية لجعل التغيير نافذاً.

إذا كنت تريد هجرة الصورة إلى جهاز كمبيوتر آخر،

  • تصدير الصورة إلى ملف tar
docker save --output myems-api.tar myems/myems-api
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-api.tar

الخطوة 3: myems-admin​

في هذا القسم، سوف تقوم بتثبيت myems-admin على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-admin /
cd /myems-admin
احذر

قم يدوياً باستبدال 127.0.0.1:8000 في nginx.conf بعنوان IP الفعلي للمضيف (HOST) ومنفذ myems-api

nano nginx.conf
proxy_pass http://127.0.0.1:8000/;
  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-admin .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-admin .
  • تشغيل حاوية Docker

على المضيف، أنشئ مجلد ملفات تحميل مشترك (share upload file folder):

mkdir /myems-upload

أنشئ حاوية، ربط مجلد ملفات التحميل المشترك بالحاوية وكذلك ربط nginx.conf

docker run -d -p 8001:8001 -v /myems-upload:/var/www/myems-admin/upload -v /myems-admin/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-admin myems/myems-admin
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -p نشر منفذ (منافذ) الحاوية على المضيف، 8001:8001 (مضيف:حاوية) ربط منفذ 8001 (يمين) للحاوية بمنفذ TCP 8001 (يسار) على جهاز المضيف.

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

إذا كنت تريد هجرة الصورة إلى جهاز كمبيوتر آخر،

  • تصدير الصورة إلى ملف tar
docker save --output myems-admin.tar myems/myems-admin
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-admin.tar

الخطوة 4: myems-modbus-tcp​

في هذا القسم، سوف تقوم بتثبيت myems-modbus-tcp على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
  • إنشاء ملف .env بناءً على ملف example.env
احذر

قم يدوياً باستبدال 127.0.0.1 بعنوان IP الفعلي للمضيف (HOST).

cp example.env .env
  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-modbus-tcp .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
  • تشغيل حاوية Docker (تشغيل كمتسلسل سوبر (superuser))
docker run -d -v /myems-modbus-tcp/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-modbus-tcp myems/myems-modbus-tcp
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

المسار المطلق قبل النقطتين (:) هو للمسار على المضيف وقد يختلف في نظامك. المسار المطلق بعد النقطتين (:) هو للمسار في الحاوية ولا يمكن تغييره. من خلال تمرير .env كمعلمة ربط الملفات (bind-mount parameter)، يمكنك تغيير قيم التكوين لاحقاً. إذا قمت بتغيير ملف .env، أعد تشغيل الحاوية لجعل التغيير نافذاً.

  • هجرة حاوية Docker

للهجرة إلى جهاز كمبيوتر آخر،

  • تصدير الصورة إلى ملف tar
docker save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-modbus-tcp.tar

الخطوة 5: myems-cleaning​

في هذا القسم، سوف تقوم بتثبيت myems-cleaning على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-cleaning /
cd /myems-cleaning
  • إنشاء ملف .env بناءً على ملف example.env
احذر

قم يدوياً باستبدال 127.0.0.1 بعنوان IP الفعلي للمضيف (HOST).

cp example.env .env
  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-cleaning .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-cleaning .
  • تشغيل حاوية Docker (تشغيل كمتسلسل سوبر (superuser))
docker run -d -v /myems-cleaning/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-cleaning myems/myems-cleaning
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

المسار المطلق قبل النقطتين (:) هو للمسار على المضيف وقد يختلف في نظامك. المسار المطلق بعد النقطتين (:) هو للمسار في الحاوية ولا يمكن تغييره. من خلال تمرير .env كمعلمة ربط الملفات (bind-mount parameter)، يمكنك تغيير قيم التكوين لاحقاً. إذا قمت بتغيير ملف .env، أعد تشغيل الحاوية لجعل التغيير نافذاً.

  • هجرة حاوية Docker

للهجرة إلى جهاز كمبيوتر آخر،

  • تصدير الصورة إلى ملف tar
docker save --output myems-cleaning.tar myems/myems-cleaning
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-cleaning.tar

الخطوة 6: myems-normalization​

في هذا القسم، سوف تقوم بتثبيت myems-normalization على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-normalization /
cd /myems-normalization
  • إنشاء ملف .env بناءً على ملف example.env
احذر

قم يدوياً باستبدال 127.0.0.1 بعنوان IP الفعلي للمضيف (HOST).

cp example.env .env
  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-normalization .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-normalization .
  • تشغيل حاوية Docker (تشغيل كمتسلسل سوبر (superuser))
docker run -d -v /myems-normalization/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-normalization myems/myems-normalization
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

المسار المطلق قبل النقطتين (:) هو للمسار على المضيف وقد يختلف في نظامك. المسار المطلق بعد النقطتين (:) هو للمسار في الحاوية ولا يمكن تغييره. من خلال تمرير .env كمعلمة ربط الملفات (bind-mount parameter)، يمكنك تغيير قيم التكوين لاحقاً. إذا قمت بتغيير ملف .env، أعد تشغيل الحاوية لجعل التغيير نافذاً.

  • هجرة حاوية Docker

للهجرة إلى جهاز كمبيوتر آخر,

  • تصدير الصورة إلى ملف tar
docker save --output myems-normalization.tar myems/myems-normalization
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-normalization.tar

الخطوة 7: myems-aggregation​

في هذا القسم، سوف تقوم بتثبيت myems-aggregation على Docker.

  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-aggregation /
cd /myems-aggregation
  • إنشاء ملف .env بناءً على ملف example.env
cp example.env .env
احذر

قم يدوياً باستبدال 127.0.0.1 بعنوان IP الفعلي للمضيف (HOST).

  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-aggregation .

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-aggregation .
  • تشغيل حاوية Docker (تشغيل كمتسلسل سوبر (superuser))
docker run -d -v /myems-aggregation/.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-aggregation myems/myems-aggregation
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

المسار المطلق قبل النقطتين (:) هو للمسار على المضيف وقد يختلف في نظامك. المسار المطلق بعد النقطتين (:) هو للمسار في الحاوية ولا يمكن تغييره. من خلال تمرير .env كمعلمة ربط الملفات (bind-mount parameter)، يمكنك تغيير قيم التكوين لاحقاً. إذا قمت بتغيير ملف .env، أعد تشغيل الحاوية لجعل التغيير نافذاً.

  • هجرة حاوية Docker

  • تصدير الصورة إلى ملف tar

docker save --output myems-aggregation.tar myems/myems-aggregation
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-aggregation.tar

الخطوة 8: myems-web​

في هذا القسم، سوف تقوم بتثبيت myems-web على Docker.

  • تعديل ملف config.js:
ملاحظة

احصل على mapboxToken في https://mapbox.com ثم اضبط showOnlineMap على true. إذا كنت تريد إيقاف ميزة الخريطة عبر الإنترنت، اضبط showOnlineMap على false

cd myems/myems-web
nano src/config.js
  • تعديل ملف nginx.conf:
احذر

استبدل 127.0.0.1:8000 في nginx.conf بعنوان IP الفعلي للمضيف (HOST) ومنفذ myems-api

cd myems/myems-web
nano nginx.conf
  • نسخ كود المصدر إلى الدليل الجذري
cp -r myems/myems-web /
cd /myems-web
معلومات

يمكنك تجاهل الأمر 'npm run build' في هذا القسم بأمان، لأنه يتم بناؤه في ملف Dockerfile

  • بناء الصورة (Image) من كود المصدر
docker build -t myems/myems-web .
docker image prune -f

للبناء لعدة منصات وليس فقط للهندسة المعمارية ونظام التشغيل الذي يقوم المستخدم الذي يُطلق الأمر بالبناء بتشغيله. يمكنك استخدام buildx وضبط العلم --platform لتحديد المنصة الهدف للناتج من البناء، (مثال، linux/amd64، linux/arm64، أو darwin/amd64).

docker buildx build --platform=linux/amd64 -t myems/myems-web .
docker image prune -f
  • تشغيل حاوية Docker

على المضيف، ربط nginx.conf

docker run -d -p 80:80 -v /myems-web/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-web myems/myems-web
  • -d تشغيل الحاوية في الخلفية وطباعة معرف الحاوية (container ID)

  • -p نشر منفذ (منافذ) الحاوية على المضيف، 80:80 (مضيف:حاوية) ربط منفذ 80 (يمين) للحاوية بمنفذ TCP 80 (يسار) على جهاز المضيف.

  • -v إذا كنت تستخدم -v أو --volume لربط ملف أو دليل لم يكن موجوداً على مضيف Docker، سيقوم -v بإنشاء النقطة النهائية لك. يتم إنشاؤه دائمًا كدليل. الخيار ro، إذا كان موجوداً، يسبب ربط الملفات (bind mount) ليتم تثبيته في الحاوية كقراءة فقط (read-only). للإصدارات v4.7.0 أو الأقدم، استخدم '/code/.env' بدلاً من '/app/.env'.

  • --log-opt max-size=2m الحجم الأقصى للسجل (log) قبل أن يتم تدويره. عدد صحيح موجب بالإضافة إلى معامل يمثل وحدة القياس (k، m، أو g).

  • --log-opt max-file=2 العدد الأقصى لملفات السجل التي يمكن أن تكون موجودة. إذا تسبب تدوير السجلات في إنشاء ملفات زائدة، يتم حذف أقدم ملف. عدد صحيح موجب.

  • --restart سياسة إعادة التشغيل لتطبيقها عند إغلاق الحاوية

  • --name تعيين اسم للحاوية

إذا كنت تريد هجرة الصورة إلى جهاز كمبيوتر آخر،

  • تصدير الصورة إلى ملف tar
docker save --output myems-web.tar myems/myems-web
  • نسخ ملف tar إلى جهاز كمبيوتر آخر، ثم تحميل الصورة من ملف tar
docker load --input .\myems-web.tar

بعد التثبيت​

تهانينا! يمكنك الآن تسجيل الدخول إلى واجهة المستخدم الرسومية (UI) للإدارة MyEMS Admin UI وواجهة المستخدم الرسومية (UI) الويب MyEMS Web UI.

المنافذ الافتراضية​

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

بافتراض أن عنوان الخادم هو 192.168.1.8 (استبدل بالعنوان الفعلي للخادم) الوصول إلى MyEMS Web UI على http://192.168.1.8 (يمكن حذف 80) الوصول إلى MyEMS Admin UI على http://192.168.1.8:8001

كلمات المرور الافتراضية​

MyEMS Admin UI

اسم المستخدم:

administrator

كلمة المرور:

!MyEMS1

MyEMS Web UI

اسم المستخدم:

administrator

كلمة المرور:

!MyEMS1

استكشاف الأخطاء​

كيفية حل مشاكل انتهاء مهلة سحب الصورة (image pull timeout)

بسبب مشاكل شبكة مزود الخدمة الإنترنت (ISP)، قد تواجه سحبًا بطيئًا للصورة. يمكنك استخدام خدمات تسريع طرف ثالث.