Dockerfile Raspberry PI Python pip установить «PermissionError: [ошибка 1] Операция не разрешена»

#python #docker #pip

#python #докер #pip

Вопрос:

учитывая файл Dockerfile

 FROM python:3.10-slim
RUN pip install --user --no-cache-dir Flask requests
WORKDIR /app
COPY app /app
CMD ["python", "app.py"]
 

выполнение

 docker build -t iobrokerplexwebhook:0.0.1 .
 

Я получаю сообщение об ошибке Операция не разрешена

 Step 2/5 : RUN pip install --user --no-cache-dir Flask requests
---> Running in 9ccdcb51ccec
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pip._internal.cli.main import main
File "/usr/local/lib/python3.10/site-packages/pip/_internal/__init__.py", line 4, in 
<module>
from pip._internal.utils import _log
File "/usr/local/lib/python3.10/site-packages/pip/_internal/utils/_log.py", line 8, in 
<module>
import logging
File "/usr/local/lib/python3.10/logging/__init__.py", line 57, in <module>
_startTime = time.time()
PermissionError: [Errno 1] Operation not permitted
 

в Docker для Windows это выполняется без каких-либо ошибок. У кого-нибудь есть какой-либо подход к решению?
Заранее спасибо!

Комментарии:

1. на какой ОС вы используете docker?

2. это на raspbian 10.11.

3. Мне удалось найти первопричину и смягчение последствий. Ошибка вызвана time.time() и воспроизводится при переходе в контейнер. python: 3.10-slim основан на bullseye. При переключении обратно на buster python: 3.10-slim-buster код работает так, как ожидалось

4. отправил ошибку bugs.python.org/issue45960

5. Скопировал ошибку в репозиторий github для docker python: github.com/docker-library/python/issues/674

Ответ №1:

Была такая же проблема на Raspberry Pi 4. Как было предложено в выпуске на странице Docker Github, вам необходимо обновить Docker и libseccomp2.

Установка на raspbian также не является прямой, но вот способ сделать это:

 # Get signing keys to verify the new packages, otherwise they will not install
rpi ~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138

# Add the Buster backport repository to apt sources.list
rpi ~$ echo 'deb http://httpredir.debian.org/debian buster-backports main contrib non-free' | sudo tee -a /etc/apt/sources.list.d/debian-backports.list

rpi ~$ sudo apt update
rpi ~$ sudo apt install libseccomp2 -t buster-backports
 

Источник: https://blog.samcater.com/fix-workaround-rpi4-docker-libseccomp2-docker-20 /