Python >> Tutoriel Python >  >> Python Tag >> Linux

Docker Alpine Linux exécutant 2 programmes

Je suggérerais d'examiner l'approche de supervision. Vous pouvez trouver comment l'utiliser dans la documentation Docker.

Quelques exemples :

1. Dockerfile est :

FROM alpine:latest
RUN apk update && apk add --no-cache supervisor openssh nginx
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

2. supervisord.conf est :

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:nginx]
command=nginx -c /etc/nginx/nginx.conf

Vous devrez exécuter le premier programme en arrière-plan pour que la deuxième ligne de votre script s'exécute.

Chaque fois que vous avez deux processus qui doivent s'exécuter dans un conteneur, il existe un risque de processus zombies (c'est-à-dire que le conteneur ne transmettra pas correctement le signal SIGKILL à tous processus).
Utilisez comme image de base phusion/baseimage-docker :il est fait pour gérer plusieurs processus.