2017-05-03 3 views
0

Ich versuche, einen Docker Container mit Apache 2.4 und PHP 5.6 einzurichten. Ich verwende Alphine Bild von Php als mein Basisbild. Wenn ich den folgenden Befehlapachectl -DFOREGROUND exits sofort

apachectl -DFOREGROUND -e debug 

ausführt, wird es sofort beendet. Ich sehe keinen Fehler

[Wed May 03 03:05:18.229549 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module unixd_module from /usr/lib/apache2/mod_unixd.so 
[Wed May 03 03:05:18.229633 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module authz_core_module from /usr/lib/apache2/mod_authz_core.so 
[Wed May 03 03:05:18.229696 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module log_config_module from /usr/lib/apache2/mod_log_config.so 
[Wed May 03 03:05:18.230021 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module logio_module from /usr/lib/apache2/mod_logio.so 
[Wed May 03 03:05:18.230120 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module mpm_prefork_module from /usr/lib/apache2/mod_mpm_prefork.so 
[Wed May 03 03:05:18.230395 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module alias_module from /usr/lib/apache2/mod_alias.so 
[Wed May 03 03:05:18.230485 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module authz_host_module from /usr/lib/apache2/mod_authz_host.so 
[Wed May 03 03:05:18.230569 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module dir_module from /usr/lib/apache2/mod_dir.so 
[Wed May 03 03:05:18.230723 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module mime_module from /usr/lib/apache2/mod_mime.so 
[Wed May 03 03:05:18.230873 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module negotiation_module from /usr/lib/apache2/mod_negotiation.so 
[Wed May 03 03:05:18.234418 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module php5_module from /usr/lib/apache2/libphp5.so 
[Wed May 03 03:05:18.234537 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module remoteip_module from /usr/lib/apache2/mod_remoteip.so 
[Wed May 03 03:05:18.234751 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module rewrite_module from /usr/lib/apache2/mod_rewrite.so 
[Wed May 03 03:05:18.234830 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module setenvif_module from /usr/lib/apache2/mod_setenvif.so 
[Wed May 03 03:05:18.235048 2017] [so:debug] [pid 1111] mod_so.c(266): AH01575: loaded module status_module from /usr/lib/apache2/mod_status.so 

Ich habe keine Ahnung, warum es der Fall wäre. Es scheint, -D FOREGROUND ist die richtige Option basierend auf meinem googlen, aber aus irgendeinem Grund funktioniert es nicht für mich.

Irgendwelche Ideen?

+0

Können Sie Ihren Beitrag mit vollständigen Dockerfile bearbeiten, so dass wir versuchen, zu reproduzieren? –

+0

Ich habe das Problem gefunden. Ich habe die Dockerfile als Teil meiner Antwort veröffentlicht – tabiul

Antwort

1

Ich habe das Problem gefunden, warum apachectl -DFOREGROUND den Prozess httpd nicht startet. Es scheint, wir brauchen diese mkdir -p /run/apache2. Hier ist die vollständige Dockerfile, wenn jemand interessiert ist. Es ist für PHP 5.6, Apache 2.4 auf Alpine. Ich habe mich dafür entschieden, httpd anstelle von apachectl zu verwenden, da ich möchte, dass Apache stirbt, wenn der Andock-Container stoppt. Mit httpd wird der Prozess an die aktuelle Shell angehängt.

FROM php:5.6-alpine 
RUN apk update && apk upgrade && \ 
    apk add --no-cache apache2 && \ 
    apk add --no-cache apache2-utils && \ 
    apk add --no-cache php5-apache2 && \ 
    apk add --no-cache php5-mysql && \ 
    apk add --no-cache php5-mysqli && \ 
    apk add --no-cache php5-pear && \ 
    apk add --no-cache php5-cgi && \ 
    apk add --no-cache php5-curl && \ 
    apk add --no-cache php5-dev && \ 
    apk add --no-cache php5-fpm && \ 
    apk add --no-cache php5-gd && \ 
    apk add --no-cache php5-imagick && \ 
    apk add --no-cache php5-imap && \ 
    apk add --no-cache php5-intl && \ 
    apk add --no-cache php5-json && \ 
    apk add --no-cache php5-mcrypt 

RUN mkdir -p /run/apache2 
ENTRYPOINT ["httpd", "-D", "FOREGROUND"] 
Verwandte Themen