انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید




نویسنده موضوع: مشکل در ساخت Docker Image (حل شد)  (دفعات بازدید: 245 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین mostafa7091

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
مشکل در ساخت Docker Image (حل شد)
« : 11 آبان 1401، 02:23 ق‌ظ »
سلام
من به پکیج pyqt5 روی یک سیستم arm64 نیاز دارم. از اونجایی که نتونستم pyqt5 رو نصب کنم تصمیم گرفتم بصورت داکر ازش استفاده کنم. ایمیج آماده که بدردبخور هم باشه براش موجود نیست پس تصمیم گرفتم خودم یکی درست کنم.
اول سعی کردم روی همون سیستم arm64 اینکارو انجام بدم. از ایمیج robd003/python3.9 که arm64 هست به عنوان base استفاده کردم تا پکیج pyqt5 رو روش نصب و ایمیج موردنظرم رو بسازم.

Dockerfile
FROM robd003/python3.9:latest

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./brightness.py" ]

در حین build کردن در مرحله ی نصب pyqt5, همون خطایی رو داد که موقع نصب pyqt5 به صورت مستقیم به وجود میمومد. یعنی در حین نصب dependency ها با خطا روبرو میشد. از اونجایی که توی این تاپیک سوالم روی داکر تمرکز داره از این خطا میگذریم!

تصمیم گرفتم روی یک سیستم amd64 که pyqt5 بدون مشکل نصب میشه, ایمیج مذکور رو درست کنم. دوباره از ایمیج robd003/python3.9 که arm64 هست به عنوان base استفاده کردم... فقط در مرحله build کردن نوع پلتفرم رو arm64 تعیین کردم:
sudo docker buildx build --platform linux/arm64/v8 -t python-pyqt5 .

و نتیجه:
=> [internal] load build definition from Dockerfile                                                                                     1.1s
 => => transferring dockerfile: 215B                                                                                                     0.0s
 => [internal] load .dockerignore                                                                                                        0.8s
 => => transferring context: 2B                                                                                                          0.0s
 => [internal] load metadata for docker.io/robd003/python3.9:latest                                                                      5.9s
 => [1/5] FROM docker.io/robd003/python3.9:latest@sha256:83a53d5562f108cb28542640b3c2d7f28f9f7d92ae1092631df764ceedae5478             2181.6s
 => => resolve docker.io/robd003/python3.9:latest@sha256:83a53d5562f108cb28542640b3c2d7f28f9f7d92ae1092631df764ceedae5478                0.6s
 => => sha256:83a53d5562f108cb28542640b3c2d7f28f9f7d92ae1092631df764ceedae5478 743B / 743B                                               0.0s
 => => sha256:807151d56a532ce425d89fcb55f511c4a923db6a10f287cc178fd7787b8c96fd 2.22kB / 2.22kB                                           0.0s
 => => sha256:d2104654b7835dbce5a0128718f16319d6980fc9b3d4c9122f32549848304bb7 8.05kB / 8.05kB                                           0.0s
 => => sha256:741eb94195433e00f9799629cc66740c97d607d6f3ed207e5738995897c52959 49.22MB / 49.22MB                                       465.0s
 => => sha256:dd0317c7db28bd6855b787608d1f4236185907b452f6f545a9954be870828af6 9.77MB / 9.77MB                                         217.6s
 => => sha256:d098cf33298807975a4d84f59f6689e0bf729b62fca9b7320adb80ebeaabc578 7.70MB / 7.70MB                                         103.0s
 => => sha256:e4301bfae0dab5df877b31fde90c919b02335f783b7405d66b6123acfe03e69e 52.17MB / 52.17MB                                       670.9s
 => => sha256:e9bc033bade497e8cb28905b968cf86a903cd263101247f4089023659a66d87c 183.99MB / 183.99MB                                    2152.8s
 => => extracting sha256:741eb94195433e00f9799629cc66740c97d607d6f3ed207e5738995897c52959                                                2.0s
 => => sha256:6d6161a44d8a9c4917cae94daa886ec9b382ea1728a9042dc8d5fb900b5f3700 6.02MB / 6.02MB                                         523.0s
 => => extracting sha256:d098cf33298807975a4d84f59f6689e0bf729b62fca9b7320adb80ebeaabc578                                                0.3s
 => => extracting sha256:dd0317c7db28bd6855b787608d1f4236185907b452f6f545a9954be870828af6                                                0.3s
 => => sha256:88b803109595c09ad3a95e0d2ce4a89c63493dd02ef5d706d29296bb13484bbb 54.51MB / 54.51MB                                       949.2s
 => => extracting sha256:e4301bfae0dab5df877b31fde90c919b02335f783b7405d66b6123acfe03e69e                                                2.5s
 => => sha256:70d07175aa71e8eac45337db7e31ffcd9936005f527c9a958ea56ddd36d2a09a 240B / 240B                                             672.6s
 => => sha256:9cf8333bf95d8d1af7e207639fe0257ae47b3411d004d2dc3c404e509e7c78d0 2.52MB / 2.52MB                                         687.9s
 => => extracting sha256:e9bc033bade497e8cb28905b968cf86a903cd263101247f4089023659a66d87c                                                7.0s
 => => extracting sha256:6d6161a44d8a9c4917cae94daa886ec9b382ea1728a9042dc8d5fb900b5f3700                                                0.3s
 => => extracting sha256:88b803109595c09ad3a95e0d2ce4a89c63493dd02ef5d706d29296bb13484bbb                                                1.5s
 => => extracting sha256:70d07175aa71e8eac45337db7e31ffcd9936005f527c9a958ea56ddd36d2a09a                                                0.0s
 => => extracting sha256:9cf8333bf95d8d1af7e207639fe0257ae47b3411d004d2dc3c404e509e7c78d0                                                0.2s
 => [internal] load build context                                                                                                        0.7s
 => => transferring context: 1.47kB                                                                                                      0.0s
 => [2/5] WORKDIR /usr/src/app                                                                                                           1.4s
 => [3/5] COPY requirements.txt ./                                                                                                       0.9s
 => ERROR [4/5] RUN pip install --no-cache-dir -r requirements.txt                                                                       1.6s
------                                                                                                                                       
 > [4/5] RUN pip install --no-cache-dir -r requirements.txt:
#0 1.179 exec /bin/sh: exec format error
------
ERROR: failed to solve: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: exit code: 1

همینطور که میبینید بازهم خطا گرفت و با سرچی که کردم اینطور فهمیدم که بخاطر استفاده از ایمیج robd003/python3.9 که arm64 هست روی یک سیستم با معماری amd64 این خطا رخ داده.
از ایمیج pyqt5 برپایه amd64 روی سیستم arm64 هم استفاده کردم و سعی کردم در حین اجرا با استفاده از فلگ پلتفورم این تفاوت رو هندل کنم اما باز خطا میگرفتم
docker run --rm -ti --platform linux/amd64 pyqt5
پیشنهادتون چی هست دوستان؟
ممکنه همه مشکلات بخاطر عدم پشتیبانی pyqt5 از سیستم های aarch64/v8 باشه؟
« آخرین ویرایش: 11 آذر 1401، 11:03 ق‌ظ توسط mostafa7091 »

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1253
  • جنسیت : پسر
پاسخ : مشکل در ساخت Docker Image
« پاسخ #1 : 13 آبان 1401، 06:02 ب‌ظ »
شاید بتونید یک image مربوط به معماری متفاوت از ماشین میزبان را بسازید اما نمی‌تونید اجراش کنید.