docker-在高山容器中使用confluent-kafka python客户端

前端之家收集整理的这篇文章主要介绍了docker-在高山容器中使用confluent-kafka python客户端 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试运行一个与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工作?

最佳答案
这是使其工作的一种方法

FROM 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及其依赖项.

原文链接:https://www.f2er.com/docker/532719.html

猜你在找的Docker相关文章