Docker: les dockers Nginx et php5-fpm ne parlent pas

J'aimerais prendre une dockerized Drupal installer. Ma première étape est d'obtenir des récipients en cours d'exécution avec Nginx et php5-fpm, à la fois basées sur Debian. Je suis sur CoreOS canal alpha (à l'aide de Digital Ocean.)

Mon Dockerfiles sont les suivantes:

Nginx:

FROM debian
MAINTAINER fvhemert
RUN apt-get update && apt-get install -y nginx && echo "\ndaemon off;" >> /etc/nginx/nginx.conf
CMD ["nginx"]
EXPOSE 80

Ce conteneur construire et fonctionne bien. Je vois la valeur par défaut de Nginx page sur mon serveur ip.

Php5-fpm:

FROM debian
MAINTAINER fvhemert
RUN apt-get update && apt-get install -y \
            php5-fpm \
            && sed 's/;daemonize = yes/daemonize = no/' -i /etc/php5/fpm/php-fpm.conf
CMD ["php5-fpm"]
EXPOSE 9000

Ce conteneur construit aussi avec pas de problèmes et qu'il continue de fonctionner lorsqu'il est démarré.

Je commence le php5-fpm conteneur d'abord avec:

docker run -d --name php5-fpm freek/php5-fpm:1

Ad puis j'ai commencer à Nginx, lié à php5-fpm:

docker run -d -p 80:80 --link php5-fpm:phpserver --name nginx freek/nginx-php:1

Le lien semble fonctionner, il y a une entrée dans /etc/hosts avec le nom phpserver. Les deux dockers exécuter:

core@dockertest ~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
fd1a9ae0f1dd        freek/nginx-php:4   "nginx"             38 minutes ago      Up 38 minutes       0.0.0.0:80->80/tcp   nginx
3bd12b3761b9        freek/php5-fpm:2    "php5-fpm"          38 minutes ago      Up 38 minutes       9000/tcp             php5-fpm

J'ai ajusté certains des fichiers de configuration. Pour la Nginx conteneur j'ai édité le fichier /etc/nginx/sites-enabled/default et a changé:

server {
        #listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm index.php;

(J'ai ajouté le index.php)

Et plus loin:

location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
                fastcgi_pass phpserver:9000;
        #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

Dans le php5-fpm docker j'ai modifié /etc/php5/fpm/php.ini:

cgi.fix_pathinfo=0

php5-fpm pistes:

[21-Nov-2014 06:15:29] NOTICE: fpm is running, pid 1
[21-Nov-2014 06:15:29] NOTICE: ready to handle connections

J'ai aussi changé index.html pour index.php il ressemble à ceci (/usr/share/nginx/www/index.php):

<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>

<?php
phpinfo();
?>

</body>
</html>

J'ai scanné les 9000 port de la Nginx docker, il apparaît comme fermé. Pas bon signe, bien sûr:

root@fd1a9ae0f1dd:/# nmap -p 9000 phpserver

Starting Nmap 6.00 ( http://nmap.org ) at 2014-11-21 06:49 UTC
Nmap scan report for phpserver (172.17.0.94)
Host is up (0.00022s latency).
PORT     STATE  SERVICE
9000/tcp closed cslistener
MAC Address: 02:42:AC:11:00:5E (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

Les logs Nginx:

root@fd1a9ae0f1dd:/# vim /var/log/nginx/error.log
2014/11/20 14:43:46 [error] 13#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 194.171.252.110, server: localhost, request: "GET /HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "128.199.60.95"
2014/11/21 06:15:51 [error] 9#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 145.15.244.119, server: localhost, request: "GET /HTTP/1.0", upstream: "fastcgi://172.17.0.94:9000", host: "128.199.60.95"

Oui, que se passe mal et je reçois une erreur 502 bad gateway lors de la navigation de mon Nginx instance.

Ma question est: qu'est-Ce qui va mal? Ma conjecture est que je suis pas certains paramètre dans la config php les fichiers.

MODIFIER POUR PLUS DE DÉTAILS:
C'est le résultat (de l'intérieur du php5-fpm conteneur, après apt-get install net-tools):

root@3bd12b3761b9:/# netstat -tapen
Active les connexions Internet
(serveurs et établies) Proto Recv-Q Send-Q Adresse Locale
Adresse à l'étranger de l'État de l'Utilisateur de l'Inode PID/Program name

De l'intérieur de la Nginx conteneur:

root@fd1a9ae0f1dd:/# netstat -tapen
Active les connexions Internet
(serveurs et établies) Proto Recv-Q Send-Q Adresse Locale Adresse à l'Étranger de l'État de l'Utilisateur de l'Inode PID/Program
name tcp 0 0 0.0.0.0:80 0.0.0.0:*
ÉCOUTEZ 0 1875387 -

EDIT2:
La Progression!

Dans le php5-fpm conteneur, dans le fichier:

/etc/php5/fpm/pool.d/www.conf

J'ai changé l'écouter argument de certains socket nom:

listen = 9000

Maintenant quand je vais sur ma page j'obtiens l'erreur:
"No input file specified."

J'ai probablement de fuite /de mal quelque part. Je vais regarder de plus près!

EDIT3:

J'ai donc reconstruire les dockers-dessus des altérations et il semble qu'ils sont en train de parler. Cependant, ma page me dit: "fichier introuvable".
Je suis sûr que cela a à faire avec le document que nginx est envoyé à php-fpm, mais je n'ai aucune idée de comment il devrait ressembler. J'ai utilisé les valeurs par défaut lors de l'utilisation de la méthode de prise de, qui a toujours travaillé. Maintenant il ne fonctionne plus. Ce qui devrait être dans /etc/nginx/sites-enabled/default sous emplacement ~ .php$ { ?

source d'informationauteur Freek