Службы xinetd и rsyslog никогда не запускаются в докере (начиная с Ubuntu 22.04 на RHEL9)
Мне нужно развернуть сервис, предназначенный для работы в Ubuntu (или другом дистрибутиве с той же базой), на сервере RHEL9.
Я подумал, что лучшим решением будет развернуть его в докере.
Поэтому я создал образ докера, соответствующий тому, что мне нужно.
Когда я развертываю этот образ в таком дистрибутиве, как Debian/Ubuntu, все работает нормально.
Если я разверну его на сервере RHEL9, службы rsyslog и xinetd никогда не запустятся (один только xinetd без rsyslog в моем образе тоже не работает, я просто хотел добавить системный журнал для отладки).
Dockerfile для тестирования:
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NOWARNINGS="yes"
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get -y upgrade \
&& apt-get -yq install software-properties-common apt-utils nano libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g-dev:i386 tcsh csh emacs binutils autoconf gawk perl ffmpeg vim xinetd openssh-server openssh-client sox libsox-fmt-all bc nscd net-tools curl
RUN add-apt-repository -y ppa:adiscon/v8-stable \
&& apt-get update \
&& apt-get -y upgrade \
&& apt-get -y install rsyslog
VOLUME ["/users/bin","/users/systems"]
RUN echo "/bin/bash \n" >> /entrypoint.sh
CMD bash /entrypoint.sh
изображение здания:
docker build -t testing:1.0.0 .
Экспортировать изображение
docker save testing:1.0.0 | gzip > ./debug.tar.gz
Импортировать изображение на RHEL9
sudo docker image load -i debug.tar.gz
Запуск контейнера с помощью этой команды:
docker run -it testing:1.0.0
Результат на RHEL
root@cbbf7017f6f9:/# service rsyslog start
* Starting enhanced syslogd rsyslogd
rsyslog startup failure, child did not respond within startup timeout (60 seconds)
[ OK ]
root@cbbf7017f6f9:/# service rsyslog status
* rsyslogd is not running
root@cbbf7017f6f9:/# service xinetd start
* Starting internet superserver xinetd [ OK ]
root@cbbf7017f6f9:/# ps -ef | grep xinetd
root 73 1 99 18:27 ? 00:00:19 start-stop-daemon --pidfile /run/xinetd.pid --start --quiet --background --exec /usr/sbin/xinetd -- -pidfile /run/xinetd.pid -stayalive -inetd_compat -inetd_ipv6
root 76 7 0 18:27 pts/0 00:00:00 grep --color=auto xinetd
Rsyslog никогда не запускается, процесс запуска xinetd остается в фоновом режиме, а xined не запускается.