#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 /