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

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@myems.io

كلمة المرور:

!MyEMS1

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

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

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