Chcę utworzyć obraz dokowania z alpejskim i apache. Używam tini jako "init" -System. Działa, dopóki nie odłączę i nie przyłączę się do pojemnika. Po przymocowaniu do kontenera wyjście apache i pojemnik się zatrzymuje. Nie wiem, na czym polega problem. Czy ktoś miał podobne problemy z docker, alpine i apache?Apache z Dockerem Alpine Linux
My Dockerfile wygląda następująco (Wcześniej użyłem Alpines menedżera pakietów dla tini)
FROM alpine
ENV TINI_VERSION v0.16.1
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static /sbin/tini
RUN chmod +x /sbin/tini
RUN apk add --no-cache apache2 \
&& mkdir -p /run/apache2 \
&& ln -sf /dev/stdout /var/log/apache2/access.log \
&& ln -sf /dev/stderr /var/log/apache2/error.log
EXPOSE 80
ENTRYPOINT ["/sbin/tini", "-vvv", "-g", "--"]
CMD ["/usr/sbin/httpd", "-f", "/etc/apache2/httpd.conf", "-DFOREGROUND"]
wejście i wyjście do dokowanym CLI:
~/Desktop/[email protected]
$ docker run -itd test1
a793bad5d4350f58893909f1552c9f2978d8e2952960ac667f8dcb2bf7a3516e
~/Desktop/[email protected]
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
a793bad5d435 test1 "/sbin/tini -vvv -..." 12 seconds
ago Up 11 seconds 80/tcp sharp_neumann
~/Desktop/[email protected]
$ docker attach a7
[DEBUG tini (1)] Received SIGCHLD
[DEBUG tini (1)] Reaped child with pid: '5'
[INFO tini (1)] Main child exited normally (with status '0')
[TRACE tini (1)] No child to wait
[TRACE tini (1)] Exiting: child has exited
Aktualizacja: Problem wydaje się być apache2, który odbiera SIGWINCH (zmiana rozmiaru okna), podczas gdy docker dołącza do conta iner:
[Sun Oct 15 12:13:24.592575 2017] [mpm_prefork:notice] [pid 5] AH00170: caught SIGWINCH, shutting down gracefully
[DEBUG tini (1)] Received SIGCHLD
[DEBUG tini (1)] Reaped child with pid: '5'
[INFO tini (1)] Main child exited normally (with status '0')
[TRACE tini (1)] No child to wait
[TRACE tini (1)] Exiting: child has exited
Apache nadużywa sygnału w połączeniu z narzędziem apachectl, aby z wdziękiem wyłączyć serwer. Czy można zablokować ten sygnał, aby nie był przekazywany do apache?
szukam rozwiązania, które nie ograniczają drogę uruchomieniu pojemnik Döcker np z '-t' lub nie. – Sebi2020
@ Sebi2020 OK, ale po pierwsze, po prostu utrzymywałbyś -D pracował w twoim przypadku? – VonC
Tak, jeśli nie podłączę tty, sygnał nie zostanie wysłany. – Sebi2020