我正在尝试运行一个与kafka通信的简单python应用程序.我正在寻找使用高山容器的容器.这是我当前的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"]
需求文件中包含confluent-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)有没有一种方法可以在不建立容器内部的情况下使它正常工作?如果我可以简单地将库复制到阿尔卑斯山,那就足够了.或者即使我可以复制librdkafka. b)如果没有,如何使libssl和libcryto.so工作?
最佳答案
这是使其工作的一种方法:
原文链接:https://www.f2er.com/docker/532719.htmlFROM python:3.6-alpine
MAINTAINER Ashic Mahtab (ashic@live.com)
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN sed -i -e 's/v3\.4/edge/g' /etc/apk/repositories \
&& apk upgrade --update-cache --available \
&& 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"]
这里有一个解释:
python:3.6-alpine图像基于alpine linux 3.4:Dockerfile
因此,您首先需要正确移动到边缘高山分支:Edge
这是通过以下行完成的:
RUN sed -i -e 's/v3\.4/edge/g' /etc/apk/repositories \
&& apk upgrade --update-cache --available \
然后,您可以安装librdkafka及其依赖项.