Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker-compose, MySQL, ghost

Sujet résolu
    28 octobre 2019 à 15:58:00

    Bonjour, je suis en train de réaliser le tp de fin du tutoriel docker .

    Il faut grâce à docker-compose créer un environnement comprenant un serveur  ghost et un MySQL.

    Voici mon fichier docker compose.

    version: '3'
    
    volumes:
      db_data: {}
    
    services:
      my_db:
        image: mysql:5.7
        volumes:
          - db_data:/var/lib/mysql
    strongestpassword    restart: always
        environment:
          MYSQL_ROOT_PASSWORD: strongestpassword
          MYSQL_USER: ghostuser
          MYSQL_PASSWORD: ocrpassword
          MYSQL_DATABASE: ghost
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8080:8080
    
      ghost:
        depends_on:
          - my_db
        image: source_tp-docker-build:latest
        ports:
          - "80:2368"
        restart: always
        environment:
          database__client: mysql
          database__connection__host: my_db
          database__connection__user: ghostuser
          database__connection__password: ocrpassword
          database__connection__database: ghost
          NODE_ENV: production


    Actuellement, lorsque je fais mon "docker-compose up -d" j'obtiens le résultat suivant :

    CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS                           PORTS                    NAMES
    a1c7a29d27ab        source_tp-docker-build:latest   "/bin/sh -c 'npm run…"   44 seconds ago      Restarting (255) 3 seconds ago                            ghost-cms-master_ghost_1
    e03141ac79f2        adminer                         "entrypoint.sh docke…"   46 seconds ago      Up 44 seconds                    0.0.0.0:8080->8080/tcp   ghost-cms-master_adminer_1
    8394827c87c5        mysql:5.7                       "docker-entrypoint.s…"   46 seconds ago      Up 44 seconds                    3306/tcp, 33060/tcp      ghost-cms-master_my_db_1


    Le ghost redémarre en boucle et je suppose que cela vient du fait qu'il n'arrive pas à se connecter au MySQL.

    J'ai donc essayé de me connecter au conteneur MySQL comme cela :

    sudo docker exec -it 8394827c87c5 bash

    Puis de me connecter à la bdd "ghost" avec mon utilisateur
    "ghostuser" et mon mdp "ocrpassword":

    mysql --user ghostuser --password ghost

    Et à ce moment la j'ai l'erreur suivante :

    ERROR 1044 (42000): Access denied for user 'ghostuser'@'localhost' to database 'ghost'

    Je peux me connecter à la base en root avec le mdp définis dans mon .yml et je vois que je suis bien sur ma bdd ghost

    mysql> SELECT DATABASE();
    +------------+
    | DATABASE() |
    +------------+
    | ghost |
    +------------+
    1 row in set (0.00 sec)

     Toujours sur MySQL je switch d'utilisateur, ce qui fonctionne:

    mysql> system mysql -u ghostuser -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 30
    Server version: 5.7.28 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    

    Donc la je me perd! J'ai pas pu me connecter avec mon utilisateur alors qu'une fois sur la DB je peux.

    Ensuite en continuant mes tests j'ai trouvé encore plus bizar.

    J'ai un yml en retirant seulement le service ghost :

    version: '3'
    
    volumes:
      db_data: {}
    
    services:
      my_db:
        image: mysql:5.7
        volumes:
          - db_data:/var/lib/mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: strongestpassword
          MYSQL_USER: ghostuser
          MYSQL_PASSWORD: ocrpassword
          MYSQL_DATABASE: ghost
    
      adminer:
        image: adminer
        restart: always
        ports:
          - 8081:8080

    Et avec cette envirronement je peux me connecter directement à ma BDD MySQL en faisant :

    root@b44f3b0d5a82:/# mysql --user ghostuser --password ghost

    Commande qui n'a pas marché pour le container précédent.... C'est à n'y rien comprendre.

    Quelqu'un aurait d'autres pistes pour moi?



    • Partager sur Facebook
    • Partager sur Twitter
      30 octobre 2019 à 9:46:34

      Bon finalement le problème est résolu mais je ne suis pas sur de la cause exacte.

      Il semblerait que mon volume était corrompu (vu grâce au logs de mon conteneur image: source_tp-docker-build:latest)

      Donc j'ai tout supprimé à base de  docker volume prune et de docker system prune -a.

      Puis à la reconstruction le serveur fonctionnait correctement.

      -
      Edité par Heimdall894 30 octobre 2019 à 9:49:33

      • Partager sur Facebook
      • Partager sur Twitter

      Docker-compose, MySQL, ghost

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown