Библиотеки Python отсутствуют в Docker-контейнере после их установки в сборке img

1

Я создаю образ с некоторыми пакетами Python, вот мой файл Docker:

FROM openjdk:8-alpine

RUN apk update && apk add bash gcc musl-dev
RUN apk add python3 python3-dev
RUN apk add py3-pip
RUN apk add libxslt-dev libxml2-dev

ENV PROJECT_HOME /opt/app

RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/modules

# This is needed for Jep, otherwise it doesn't run
ENV LD_LIBRARY_PATH /usr/lib/python3.6/site-packages/jep
ENV LD_PRELOAD /usr/lib/libpython3.6m.so

RUN pip3 install jep
RUN pip3 install googleads
RUN pip3 install gspread
RUN pip3 list

COPY target/my-server-1.0-SNAPSHOT.jar $PROJECT_HOME/my-server-1.0-SNAPSHOT.jar

WORKDIR $PROJECT_HOME

CMD ["java", "-Dspring.data.mongodb.uri=mongodb://my-mongo:27017/mydb","-jar","./my-server-1.0-SNAPSHOT.jar"]

Теперь, хотя я вижу установленные пакеты во время сборки (и это большой список, который возвращает список pip3..., когда я запускаю контейнер, я не вижу на нем каких-либо пакетов, установленных из jep.

/opt/app # pip3 list
jep (3.7.1)
pip (9.0.1)
setuptools (28.8.0)
/opt/app #

Вот как я создаю изображение:

docker build -t my-server .

И вот как я проверяю установленные libs:

bash -c "clear && docker exec -it my-server sh"

pip3 list

Интересная часть состоит в том, что одна и та же команда "pip3 list", запущенная во время сборки, возвращает весь список библиотек, но внутри контейнера всего несколько...

ОБНОВЛЕНИЕ 1 Оказывается, если я запускаю контейнер вручную, я действительно вижу все библиотеки, но мне (и мне нужно) запустить контейнер с помощью docker-compose. И как-то, когда я это делаю, я не вижу всех библиотек, это мой конфигуратор для докеры для этого образа:

services:
  my-server:
    build: .
    restart: always
    container_name: my-server
    ports:
      - 8200:8200
    working_dir: /opt/app
    volumes:
      - $HOME/data/Modules:/opt/app/modules
    depends_on:
      - mongo

Любая помощь приветствуется, спасибо!

Теги:
docker
pip
docker-compose
docker-for-mac

1 ответ

0

Спасибо @AndreyBondar, он работает!

Я создавал изображение с докером и запускал его с помощью докеры, которые тоже пытались его построить, но это не могло из-за этой проблемы аутентификации OSX, поэтому кажется, что она запускала предыдущую версию изображения без библиотек ( не 100%, а то, что он выглядит).

Таким образом, теперь отключена опция "Безопасно хранить докеры в блоке ключей" в настройках док-станции, и теперь изображение прекрасно строится с компоновкой докеров.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню