docker-library / wordpress

Docker Official Image packaging for WordPress
https://wordpress.org/
GNU General Public License v2.0
1.78k stars 1.07k forks source link

Error establishing a database connection. Unable to get environment variables working #787

Closed hexclann closed 1 year ago

hexclann commented 1 year ago

Hello, I have this docker compose file:

version: '3'
services:
  mysql:
    image: mariadb
    volumes:
      - /opt/mariadb:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: dbrootpass
      MYSQL_DATABASE: testdb
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testpassword
    restart: always
  wordpress:
    image: wordpress:php8.2-fpm-alpine
    volumes:
      - /opt/wordpress/sites:/var/www/html
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      MYSQL_ROOT_PASSWORD: dbrootpass
      WORDPRESS_DB_NAME: testdb
      WORDPRESS_DB_USER: testuser
      WORDPRESS_DB_PASSWORD: testpass
      WORDPRESS_TABLE_PREFIX: wp_
      WORDPRESS_INSTALL_TYPE: blog
      WORDPRESS_EMAIL: admin@example.com
      WORDPRESS_SITE_TITLE: MySite
      WORDPRESS_ADMIN_USER: test
      WORDPRESS_ADMIN_PASSWORD: password
    links:
      - mysql
    restart: always
  nginx:
    image: nginx:alpine
    volumes:
      - /opt/wpnginx:/etc/nginx/conf.d
      - /opt/wordpress/sites:/var/www/html
    ports:
      - 80:80
    links:
      - wordpress

However the wordpress container logs shows:

WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
No 'wp-config.php' found in /var/www/html, but 'WORDPRESS_...' variables supplied; copying 'wp-config-docker.php' (WORDPRESS_ADMIN_PASSWORD WORDPRESS_ADMIN_USER WORDPRESS_DB_HOST WORDPRESS_DB_NAME WORDPRESS_DB_PASSWORD WORDPRESS_DB_USER WORDPRESS_EMAIL WORDPRESS_INSTALL_TYPE WORDPRESS_SITE_TITLE WORDPRESS_TABLE_PREFIX)

I was unable to find a solution from the previous issues: #576 #578

wglambert commented 1 year ago

The WORDPRESS_DB_PASSWORD: testpass doesn't match MYSQL_PASSWORD: testpassword

Also WordPress doesn't interpret MYSQL_ROOT_PASSWORD