Docker 中 Python 3.7 的 Syslog-ng

Syslog-ng with Python 3.7 in Docker

我正在使用以下 Dockerfile 创建带有 Python 3.7.4 和 Syslog-ng 的映像:

FROM python:3.7.4

RUN apt-get update -qq && apt-get install -y \
    wget \
    gnupg2

RUN wget -qO - https://download.opensuse.org/repositories/home:/laszlo_budai:/syslog-ng/Debian_9.0/Release.key | apt-key add -
RUN echo 'deb http://download.opensuse.org/repositories/home:/laszlo_budai:/syslog-ng/Debian_9.0 ./' | tee --append /etc/apt/sources.list.d/syslog-ng-obs.list

RUN apt-get update -qq && apt-get install -y \
    syslog-ng

COPY ./out.log /out.log
COPY ./syslog-ng.conf /etc/syslog-ng/syslog-ng.conf

RUN find /usr/lib/ -name 'libjvm.so*' | xargs dirname | tee --append /etc/ld.so.conf.d/openjdk-libjvm.conf
RUN ldconfig

EXPOSE 514/udp
EXPOSE 601/tcp
EXPOSE 6514/tcp

ENTRYPOINT ["/usr/sbin/syslog-ng", "-F"]

但是,我想在我的 syslog-ng.conf 中使用 Python 3.7.4,而 syslog-ng 使用的是 Python 2.7.

如何更改为 Python 3?


编辑:MrAnno

的解决方案

使用python3编译和配置:

RUN cd /syslog && \
    ./configure --with-python=3 --enable-ssl --enable-systemd --enable-debug  && \
    make && make install

RUN ldconfig

目前(v3.22.1),home:/laszlo_budai:/syslog-ng 仓库中的所有 syslog-ng 包都是用 Python 编译的 2. 无法更改,您必须从重新编译 syslog-ng指定了 --with-python=3 配置标志的源代码。