J'essaie de migrer un site worpdress vers un conteneur docker pour le développement local.

Cependant, chaque fois que j'utilise docker compose, je reçois toujours ceci :

Erreur de connexion MySQL : (1045) Accès refusé pour l'utilisateur 'root'@'172.22.0.3'

J'ai revérifié les mots de passe et les ai validés via le shell sur le conteneur db.

Voici mon fichier docker-compose :

services: # configuring each container
db: # name of our mysql container
image: mysql:5.7 # which image to pull, in this case specifying v. 5.7
volumes: # data to map to the container
  - ./data:/docker-entrypoint-initdb.d # where to find our data - we'll talk more about this
restart: always # always restart the container after reboot
environment: # environment variables -- mysql options in this case
  MYSQL_ROOT_PASSWORD: *****
  MYSQL_DATABASE: **_***
  MYSQL_USER: *****
  MYSQL_PASSWORD: *****

....
wordpress:
    depends_on: # container dependencies that need to be running first
  - db
  image: wordpress:latest # image used by our container
   ports:
  - "8080:80" # setting our ports for networking
   restart: always
   environment:
     WORDPRESS_DB_HOST: db:3306 # default mysql port
     WORDPRESS_DB_PASSWORD: **** # matches $MYSQL_PASSWORD
   volumes: # this is where we tell Docker what to pay attention to
  - ./wp-content/themes/chronus:/var/www/html/wp-content/themes/chronus # mapping our custom theme to the container
  - ./wp-content/plugins:/var/www/html/wp-content/plugins # map our plugins to the container
  - ./wp-content/uploads:/var/www/html/wp-content/uploads # map our uploads to the container
1
The Dark Bug Returns 24 sept. 2018 à 00:01

1 réponse

Meilleure réponse

Je suppose que vous utilisez l'image Wordpress officielle de docker hub. Vous avez spécifié le drapeau WORDPRESS_DB_PASSWORD mais pas le WORDPRESS_DB_USER. Cela signifie que le plugin wordpress est par défaut root.

Cependant, selon vos commentaires, vous avez entré le mot de passe d'un utilisateur arbitraire ici (pas l'utilisateur root).

Modifiez les variables d'environnement des conteneurs wordpress comme suit dans votre fichier de composition et cela devrait fonctionner :

   environment:
       WORDPRESS_DB_HOST: db:3306 # default mysql port
       WORDPRESS_DB_PASSWORD: **** # matches $MYSQL_PASSWORD
       WORDPRESS_DB_USER: **** # matches $MYSQL_USER
1
j4g0 27 févr. 2019 à 13:27