在 alpine 容器中使用 confluence-kafka python 客户端

ash*_*hic 3 apache-kafka docker kafka-python alpine-linux confluent-platform

我正在尝试运行一个与 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"]
Run Code Online (Sandbox Code Playgroud)

需求文件中有 confluence-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]
Run Code Online (Sandbox Code Playgroud)

我的问题是:a)有没有办法在不构建容器内部的情况下使其工作?如果我能简单地将库复制到 alpine 就足够了。或者即使我可以复制 librdkafka 过来。b) 如果没有,我怎样才能让 libssl 和 libcryto.so 工作?

Kin*_*ang 5

我维护ucalgary/python-librdkafka映像,该映像扩展了官方python:3.6-alpine映像并librdkafka从其源版本安装。欢迎您使用该镜像,或者查看 Dockerfile 以了解它是如何构建的。