thi*_*ing 26 python lxml docker dockerfile
我想在docker中部署我的python项目,我在requirments.txt中写道lxml>=3.5.0,因为项目需要lxml.这是我的dockfile:
FROM gliderlabs/alpine:3.3
RUN set -x \
&& buildDeps='\
python-dev \
py-pip \
build-base \
' \
&& apk --update add python py-lxml $buildDeps \
&& rm -rf /var/cache/apk/* \
&& mkdir -p /app
ENV INSTALL_PATH /app
WORKDIR $INSTALL_PATH
COPY requirements-docker.txt ./
RUN pip install -r requirements.txt
COPY . .
RUN apk del --purge $buildDeps
ENTRYPOINT ["celery", "-A", "tasks", "worker", "-l", "info", "-B"]
Run Code Online (Sandbox Code Playgroud)
当我将它部署到docker时,我得到了这个:
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
error: command 'gcc' failed with exit status 1
----------------------------------------
Rolling back uninstall of lxml
Run Code Online (Sandbox Code Playgroud)
我虽然是因为'python-dev'和'python-lxml',然后我像这样编辑了dockfile:
WORKDIR $INSTALL_PATH
COPY requirements-docker.txt ./
RUN apt-get build-dev python-lxml
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
它不起作用,我又得到了一个错误:
---> Running in 73201a0dcd59
/bin/sh: apt-get: not found
Run Code Online (Sandbox Code Playgroud)
如何在docker中正确安装lxml?谢谢
小智 51
我RUN apk add --update --no-cache g++ gcc libxslt-dev之前添加了RUN pip install -r requirements.txt它并且它有效.
小智 19
接受的答案不整洁并安装了冗余包。减小图像大小的更好解决方案是:
RUN apk add --no-cache --virtual .build-deps gcc libc-dev libxslt-dev && \
apk add --no-cache libxslt && \
pip install --no-cache-dir lxml>=3.5.0 && \
apk del .build-deps
Run Code Online (Sandbox Code Playgroud)
结果图像大小将 < 163MB
由于我使用的是更简单的图像,因此我需要更多的库/应用程序。
这对我有用:
RUN apk add --update --no-cache g++ gcc libxml2-dev libxslt-dev python-dev libffi-dev openssl-dev make
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
use*_*097 -2
做如下
https://hub.docker.com/r/ryanfox1985/docker-couchpotato/builds/boinrrs9dbhnutwjxjw2l8m/
下载apk并安装
RUN wget http://nl.alpinelinux.org/alpine/edge/main/x86_64/py-lxml-3.4.0-r0.apk -O /var/cache/apk/py-lxml.apk
RUN apk add --allow-untrusted /var/cache/apk/py-lxml.apk
| 归档时间: |
|
| 查看次数: |
12485 次 |
| 最近记录: |