IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Docker Discussion :

Docker Drupal Nginx Nginx-proxy


Sujet :

Docker

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Docker Drupal Nginx Nginx-proxy
    Salut salut.

    Voilà quelques temps que je me tape la tête dans tous les sens avec docker nginx etc.
    Je souhaite installer sur un VPS SSD ovh plusieurs petits sites internet.

    Pour cela j'ai trouvé un tutoriel nginx-proxy et son compagnion pour générer les certificats en même temps que la redirection automatique.

    Après je souhaitais installer Drupal, cela fonctionnais avec l'image drupal:apache, mais pas avec cette image là, je me suis dit, c'est peut être qu'il n'y a pas de serveur web, voilà pourquoi un nginx entre, mais je crains qu'il ne serve à rien, si ??

    Autre problème, rien n'est persisté, j'avais testé avec une base de donnée etc, j'avais réussi à faire tourner sans soucis et tout étais sauvegardé, mais là, rien n'est sauvegardé.... donc quand drupal fonctionnais, je créais le site à chaque redémarrage du conteneur.

    Je souhaiterais votre avis s'il vous plait, je suis bloqué, impossible de trouver le problème --

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    version: '2'
    
    services:
        nginx-proxy:
            restart: always
            image: jwilder/nginx-proxy
            ports:
                - "80:80"
                - "443:443"
            volumes:
                - /srv/docker/nginx/certs:/etc/nginx/certs:ro
                - /etc/nginx/vhost.d
                - /usr/share/nginx/html
                - /var/run/docker.sock:/tmp/docker.sock:ro
    
        nginx-proxy-companion:
            image: jrcs/letsencrypt-nginx-proxy-companion
            volumes:
                - /srv/docker/nginx/certs:/etc/nginx/certs:rw
                - /var/run/docker.sock:/var/run/docker.sock
            volumes_from:
                - nginx-proxy
    
        web:
            image: nginx
            volumes:
                - /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
                - /var/www/html
            links: 
                - nginx-proxy
                - php
            ports:
                - "8080:8080"
        
        php:
            image: php:7-fpm
            ports:
                - "9000:9000"
    
        drupal:
            image: drupal:8.4-fpm
            volumes:
                - /var/www/html/modules
                - /var/www/html/profiles
                - /var/www/html/themes
                - /var/www/html/sites/default/files
            restart: always
            links:
                - mysql
                - web
            environment:
                - VIRTUAL_HOST=les-decouvertes-de-runa.fr
                - LETSENCRYPT_HOST=les-decouvertes-de-runa.fr
                - LETSENCRYPT_EMAIL=les-decouvertes-de-runa.fr
    
        mysql:
            image: mysql
            ports:
                - "3306:3306"
            environment:
                - MYSQL_PASSWORD=mdp
                - MYSQL_USER=user
                - MYSQL_DATABASE=database
                - MYSQL_ROOT_PASSWORD=mdproot
            restart: always
            volumes:
                - /opt/mysql_data:/var/lib/mysql

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Soit tu pars sur Nginx, soit tu pars sur Apache.

    Autre problème, rien n'est persisté, j'avais testé avec une base de donnée etc, j'avais réussi à faire tourner sans soucis et tout étais sauvegardé, mais là, rien n'est sauvegardé.
    Docker n'est pas fait pour la persistance des données.

    Tu peux :
    monter un dossier de l'hôte à un conteneur lors de son lancement. Les données ne seront pas cloisonnées et accessible par le conteneur et l'hôte
    créer un docker volume que tu monteras dans le conteneur, les données seront isolés. Un docker volume est partageable entre plusieurs conteneurs.

    https://docs.docker.com/engine/admin/volumes/
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse !

    Donc Docker n'est pas la bonne solution pour moi qui est besoin de persistance, c'est bien cela??

    Donc la solution pour moi serais de mettre en place nginx, php, mysql en dur sur mon serveur c'est bien cela??

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Donc Docker n'est pas la bonne solution pour moi qui est besoin de persistance, c'est bien cela??
    Si, mais il te faut gérer dans ton conteneur soit le montage d'un dossier de l'hôte, soit la création d'un data container.

    Lis bien le lien fourni.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Désolé, je me débrouille un peu en Anglais, mais c'est pas la joie....

    J'ai compris que mon dossier est copié dans mon conteneur.
    Donc il faut déjà des fichiers à mettre dedans, c'est bien cela?

    Je pensais que les fichiers étaient copier dans le dossier en temps réel...

    Donc là je suis encore plus bloqué ^^" Comment sauvegarder ma base de donnée si rien n'est sur l'hote?

    ( Désolé, sa te parait peut être simple, mais fait 1 semaine que je bute la dessus et que je ne comprend rien et je suis bloqué dans ma réflexion, dur passer ça ^^" )

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Il te faut soit stocker ta base dans un dossier de l'autre et monter ce dossier via la commande de lancement du conteneur, soit créer un docker volume.
    Tu trouveras des infos en français en effectuant une recherche google.

    Et en point de départ :

    https://www.developpez.net/forums/d1...chine-volumes/

    Je te conseilles de regarder toutes les vidéos quoi de neuf Docker, elles sont présente sur le forum Docker.

    Si c'est pour héberger plusieurs sites, tu peux aussi tout simplement configurer des virtualhost sur ton serveur, mais Docker te permettra un cloisonnement entre les sites.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour tes conseils J'ai enfin réussi !!!

    Maintenant il reste de problème... Mon nginx ne tourne pas derrière mon Nginx-proxy... voici mes fichiers

    docker-compose.yml avec mon proxy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    version: '2'
     
    services:
        nginx-proxy:
            restart: always
            image: jwilder/nginx-proxy
            ports:
                - "80:80"
                - "443:443"
            volumes:
                - /usr/site/nginx/certs:/etc/nginx/certs:ro
                - /usr/site/nginx/:/etc/nginx/vhost.d
                - /usr/site/drupal/www:/usr/share/nginx/html
                - /var/run/docker.sock:/tmp/docker.sock:ro
        nginx-proxy-companion:
            image: jrcs/letsencrypt-nginx-proxy-companion
            volumes:
                - /usr/site/nginx/certs:/etc/nginx/certs:rw
                - /var/run/docker.sock:/var/run/docker.sock
            volumes_from:
                - nginx-proxy
    
    networks:
      default:
        external:
          name: nginx-proxy
    docker-compose.yml avec le site répertoire site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    version: '2' 
    
    services:
    
        web:
            image: nginx
            restart: always
            volumes:
               - /usr/site/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
               - /usr/site/drupal/www:/var/www/html
            ports:
                - "8080:8080"
            environment:
                - VIRTUAL_HOST=les-decouvertes-de-runa.fr
                - VIRTUAL_PORT=443
                - LETSENCRYPT_HOST=les-decouvertes-de-runa.fr
                - LETSENCRYPT_EMAIL=les-decouvertes-de-runa.fr
    
        
        drupal:
            image: drupal:8.4-fpm
            volumes:
                - /usr/site/drupal/www/modules:/modules
                - /usr/site/drupal/www/profiles:/profiles
                - /usr/site/drupal/www/themes:/themes
                - /usr/site/drupal/www/sites:/sites
            restart: always
            links:
                - mysql
    
        mysql:
            image: mysql
            ports:
                - "3306:3306"
            environment:
                - MYSQL_PASSWORD=pass
                - MYSQL_USER=user
                - MYSQL_DATABASE=database
                - MYSQL_ROOT_PASSWORD=root-pass
            restart: always
            volumes:
                - /usr/site/db:/var/lib/mysql
    
    networks:
      default:
        external:
          name: nginx-proxy
    mon nginx.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    server {
    
        listen 443;
        server_name les-decouvertes-de-runa.fr
    
        # Les urls commençant par / (toutes les urls)
        location / {
            root /usr/site/drupal/www;
            index index.html index.htm;
            try_files $uri $uri/ $uri.html =404;
        }
    
        # Les urls contennant /. (dotfiles)
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }
    
        # On va placer les logs dans un dossier accessible
        error_log /home/dev/logs/error.log; 
        access_log /home/dev/logs/acess.log; 
    
        # Les pages d'erreurs
        error_page 404 500 501 /error.html;
     
        location ~* \.PHP$ {
            fastcgi_index   index.php;
            fastcgi_pass    php:9000;
            include         fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        }
    
    }
    
    server {
        # On redirige les www. vers la version sans www
        listen 443;
        server_name www.les-decouvertes-de-runa.fr;
        return 301 http://les-decouvertes-de-runa.fr$request_uri;
    }
    Merci ^^"

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Après pas mal de recherche, j'ai trouvé le gros problème...

    Nginx-proxy utilise les ports 80 et 443
    Il redistribue en fonction des hostnames au bon service.

    Sauf que moi non...
    J'ai trouvé pourquoi, mon conteneur Nginx active automatique lui aussi le port 80 sans que je lui demande...
    donc conflit avec le proxy --

    S'il vous plait, dites moi qu'il y a une autre solution que faire un DockerFile ^^"

Discussions similaires

  1. Problème nginx reverse proxy
    Par ChMuX dans le forum Réseaux
    Réponses: 1
    Dernier message: 13/10/2017, 14h39
  2. [Erreur 503] conf Varnish Docker + nginx proxy - Plesk
    Par negurah dans le forum Serveurs (Apache, IIS,...)
    Réponses: 0
    Dernier message: 16/06/2017, 16h13
  3. Réponses: 5
    Dernier message: 24/04/2015, 12h45
  4. [NGINX][TOMCAT7][JENKINS] - Problème plugins et reverse proxy
    Par Bernulf75 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 11/04/2014, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo