Estoy tratando de crear una imagen acoplable con Alpine Linux, que después de la ejecución creará un contenedor con 2 programas en ejecución. Estos 2 (en mi opinión, no conozco bien la ventana acoplable) no se pueden separar porque el primer programa cambia el segundo archivo de configuración y luego también debería reiniciar ese programa.
Estoy luchando por cómo ejecutar ambos programas. He agregado un script propio que debería ejecutar esos programas, pero me falta algo: el script tiene 2 líneas en cada línea y es un comando para ejecutar ese programa, y solo inicia el primer programa.
En ubuntu con el subproceso python y el comando systemctl , reinicio el servicio en ejecución, pero en alpine linux se ejecuta como programa y no sé cómo reiniciarlo/recargarlo.
Sugeriría mirar el enfoque supervisado . Puede encontrar cómo usarlo en la documentación de Docker .
Algún ejemplo:
1. Dockerfile es:
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 es:
[supervisord] nodaemon=true [program:sshd] command=/usr/sbin/sshd -D [program:nginx] command=nginx -c /etc/nginx/nginx.confDeberá ejecutar el primer programa en segundo plano para que se ejecute la segunda línea de su secuencia de comandos.
Siempre que tenga dos procesos que deban ejecutarse dentro de un contenedor, existe el riesgo de procesos zombis (es decir, el contenedor no pasará correctamente la señal SIGKILL a todos los procesos).
Úselo como su imagen base phusion/baseimage-docker : está hecho para administrar múltiples procesos.