Как установить модуль ibm_db_dbi в образ докера python3.6?

#python #docker #python-3.6

#python #докер #python-3.6

Вопрос:

Я успешно установил ibm_db v3.0.1 пакет в образ докера, но когда я пытаюсь импортировать модуль ibm_db_dbi, он выдает ошибку.

Dockerfile :

 FROM python:3.6.8-alpine3.9

WORKDIR /run

COPY . /run

RUN pip install --trusted-host pypi.python.org -r requirements.txt

EXPOSE 7000

CMD ["python", "run.py"]
  

после сборки он успешно выполнил приведенный ниже модуль ibm_db для изображения.

Загрузка https://files.pythonhosted.org/packages/98/cb/f77d9bd5f64246074af364cc30e20e3044c533890f3b67d30e89615c2fc5/ibm_db-3.0.1.tar.gz (642кБ)

Пожалуйста, помогите мне решить эту проблему.

 command to run docker image :-  docker run -it -p 7000:7000  dotsapi
  

ошибка при запуске файла docker:-

Файл «/run/Informix_Conn.py «, строка 3, в

 import ibm_db_dbi as db ImportError: Error loading shared library libcrypt.so.1: No such file or directory (needed by
  

/usr/local/lib/python3.6/site-packages/clidriver/lib/libdb2.so.1)

Заранее спасибо!!

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

1. Можете ли вы отредактировать свой вопрос, чтобы добавить фактический текст Dockerfile выполняемого вами файла и конкретное сообщение об ошибке, которое вы получаете? Если это ошибка при запуске контейнера, также минимальная выдержка из скрипта Python и docker run команды?

Ответ №1:

Вы можете добавить a pip install ibm_db в свой dockerfile или создать requirements.txt досье. И вызовите его в своем dockerfile с :

  ADD        ./requirements.txt ./
 RUN        python3 -m pip install -r requirements.txt
  

Редактировать
Это сработало для меня :
В моем dockerfile :

 FROM       python:3.6
ADD        ./requirements.txt ./
RUN        python3 -m pip install -r requirements.txt
ADD        ./test.py /run
  

После успешной сборки я запустил свой образ с

 docker run --name testpython testpython:1 sleep 3600
  

Перейдите в мой контейнер

 docker exec -it testpython /bin/bash
  

И когда я запускаю консоль python или мой тестовый скрипт, импорт в порядке.

ПРИМЕЧАНИЕ: с изображением python: 3.6.8-alpine3.9 сборка не работает. Проверьте это, чтобы понять, почему

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

1. Я уже успешно установил пакет ibm_db, но проблема все еще сохраняется.

2. Попробуйте запустить свой скрипт с помощью команды python3. Убедитесь, что ваша библиотека установлена в python3, а не в python2. Вы можете зайти в свой контейнер с помощью docker exec -it, чтобы убедиться в этом.

3. Я запускаю скрипт с помощью команды python3, но проблема по-прежнему сохраняется

4. хорошо, попробуйте использовать pip3 для установки вашей библиотеки. Я попробую со своей стороны

5. пробовал использовать pip3.6 для установки библиотеки, но все та же проблема.