установить lib xml в docker с python контейнером - PullRequest
0 голосов
/ 25 марта 2020

Я столкнулся с проблемой зависимости lib xml, когда создавал контейнер docker с python, устанавливая lib зависимостей из образа ubuntu:

# pull official base image
FROM python:3.8.0-alpine

# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

FROM ubuntu:16.04
RUN apt-get update -y
RUN apt-get install g++ gcc libxml2 libxslt-dev -y
# install dependencies

FROM python:3.8.0-alpine
RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt

# copy project
COPY . /usr/src/app/

получая эту ошибку вывода компиляции:

Не удалось найти функцию xmlCheckVersion в библиотеке libxml2. Установлен ли libxml2?

1 Ответ

1 голос
/ 25 марта 2020

Вы устанавливаете эти пакеты в Ubuntu, но не в Alpine. В шаблоне компоновщика вам нужно будет скопировать файлы со слоя компоновщика в слой среды выполнения. Тем не менее, ubuntu! = Alpine, поэтому скомпилированные двоичные файлы не будут работать.

Вам потребуется использовать установщик apk для добавления этих пакетов в альпийский слой:

...
RUN apk update && apk add g++ gcc libxml2 libxslt-dev
RUN python -m pip install --upgrade pip
...
...