Systemd no obtiene el pid 1 cuando está en el contenedor acoplable

Systemd no obtiene el pid 1 cuando está en el contenedor acoplable

Estoy intentando abrir un proceso de integración continua y eso requiere que instale un archivo abc.deb dentro del contenedor.

El archivo debian/control incluye:

Depends:  ${python3:Depends}, ${misc:Depends}, python3-webpy, systemd

El archivo debian/rules incluye (a continuación solo se muestra la parte relevante):

%:
dh $@  --with=python3,systemd

override_dh_systemd_start:
    dh_systemd_start -p<application>

override_dh_installinit:
    dh_systemd_start

Mi Dockerfile se parece a:

FROM <relevant base image>
COPY results/*.deb /packages/
RUN export DEBIAN_FRONTEND=noninteractive  && apt-get update && \
    apt-get install -y --no-install-recommends --auto-remove \
    dumb-init \
    procps \
    /packages/*.deb && \
    apt-get autoremove -y && \
    apt-get autoclean -y && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/apt
    CMD tail -f /dev/null

Cuando ejecuto Docker Exec dentro de la ventana acoplable y hago ps aux, obtengo:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2388   756 ?        Ss   11:51   0:00 /bin/sh -c tail -f /dev/null

¿Cómo puedo tener systemd como PID 1? ¡Alguna vez digas tonto-init!

Intenté buscar en varios artículos, parece que no es posible y requiere confirmación. Los buenos son (por nombrar algunos):

https://lwn.net/Articles/676831/

https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/

Respuesta1

ComoReinicio elegantemencionado en el comentario, puede construir a partir de la imagen base de systemd. Por ejemplo,sistema centos. Pero definitivamente no se recomienda usar systemd dentro de un contenedor acoplable. Echa un vistazo a mipregunta relacionada.

Si necesita systemd sólo para cumplir con las dependencias, la mejor manera esignorar la dependencia de la deuda.

información relacionada