Docker nginx php im CentOS7-Container

Docker nginx php im CentOS7-Container

Ich muss eine Docker-Datei erstellen, die per Definition von centos:7 erben muss, Nginx und PHP installieren und dafür sorgen, dass eine PHP-Datei angezeigt wird.

Mein Dockerfile:

FROM centos:7
EXPOSE 80/tcp
RUN yum -y update
RUN yum -y install epel-release
RUN yum -y install nginx php php-fpm
RUN echo '<?php phpinfo();' > /var/www/demo/index.php

Meine Probleme:

  1. Wie kann ich Docker verständlich machen, dass Nginy gestartet werden muss, wenn der Container erstellt und gestartet wird?
  2. Wie bringe ich Nginx dazu, PHP zu verwenden?

Zum einen weiß ich nur, dass das nicht möglich ist mitDocker-Build.

Zu 2. Ich wollte Tutorials verwenden, aber die sind alle falsch, weil:

  • es gibt kein /etc/nginx/sites-availableVerzeichnis
  • es gibt snippets/fastcgi-php.confan keiner Stelle eine Datei, die in die nginx.conf aufgenommen werden kann

Ich habe noch nie mit nginx gearbeitet, also weiß ich nicht, wo ich anfangen soll. Keines der Tutorials, die ich gefunden habe, funktioniert, weil all diese Dateien und Ordner nicht existieren. Ich bekomme nur eine 403-Fehlerseite.

Antwort1

Dies ist der Ansatz, den ich Ihnen irgendwann habe, müssen Sie installieren und konfigurieren die nginx auf demDocker-Dateiund starten Sie es jederzeit, wenn Sie den Docker ausführen. Stellen Sie dies eindocker-entrypoint.sh

Docker-Datei:

#Install and config Nginx
RUN {\
    apt-get install nginx -y\
    rm /etc/nginx/sites-enabled/default\
    }

ADD YOUR_CONFIG_FILE /etc/nginx/sites-enabled/
RUN service nginx start


RUN PATH="$PATH:docker-entrypoint.sh"
COPY docker-entrypoint.sh /
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]

docker-entrypoint.sh:

#!/bin/bash

service nginx start
 
/bin/bash

Ich hoffe es hilft!

Antwort2

Ich habe es geschafft, den Container am Leben zu erhalten, indem ich Folgendes hinzugefügt habe

CMD ["nginx", "-g", "daemon off;"]

Ich hoffe, es hilft Ihnen und den anderen Kollegen

verwandte Informationen