我正在尝试运行一个简单的python应用程序,它可以与kafka通信。我想用阿尔卑斯山的集装箱。这是我当前的dockerfile(它不是最佳的。。。只是想让事情暂时运转起来)。
FROM python:3.6-alpine
MAINTAINER Ashic Mahtab (ashic@live.com)
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk update && apk --no-cache add librdkafka
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
COPY api /usr/src/app/api
COPY static /usr/src/app/static
CMD ["python", "api/index.py"]
需求文件中包含合流的kafka。生成失败,原因是
OK: 8784 distinct packages available
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
so:libcrypto.so.41 (missing):
required by:
librdkafka-0.9.4-r1[so:libcrypto.so.41]
librdkafka-0.9.4-r1[so:libcrypto.so.41]
librdkafka-0.9.4-r1[so:libcrypto.so.41]
so:libssl.so.43 (missing):
required by:
librdkafka-0.9.4-r1[so:libssl.so.43]
librdkafka-0.9.4-r1[so:libssl.so.43]
librdkafka-0.9.4-r1[so:libssl.so.43]
我的问题是a)有没有一种方法可以在不在容器内部构建的情况下让它工作?如果我能把图书馆复制到阿尔卑斯山就好了。即使我能把Kafka复制过来。b) 如果没有,如何使libssl和libcryto.so正常工作?
3条答案
按热度按时间igsr9ssn1#
这里有一个方法让它工作:
这里有一个解释:
python:3.6-alpine
图片基于alpinelinux3.4:dockerfile所以首先需要正确地移动到边:边
这是通过线路完成的:
然后你可以安装
librdkafka
以及依赖关系。e5nqia272#
我维护ucalgary/python librdkafka图像,该图像扩展了官方python:3.6-alpine image 安装
librdkafka
从源头释放。欢迎您使用该图像,或查看dockerfile以了解它是如何构建的。f45qwnt83#
不管怎样,既然你很紧张,你也可以从那里使用python3: