Moving Wordpress site to Docker: Error establishing DB connection Moving Wordpress site to Docker: Error establishing DB connection wordpress wordpress

Moving Wordpress site to Docker: Error establishing DB connection


With the new version of docker-compose it will look like this (if you don't want to use PhpMyAdmin you can leave it out):

version: '3.7'volumes:  wp-data:networks:  wp-back:services:  db:    image: mysql:5.7    volumes:      - wp-data:/var/lib/mysql    environment:       MYSQL_ROOT_PASSWORD: rootPassword       MYSQL_DATABASE: wordpress       MYSQL_USER: wp-user       MYSQL_PASSWORD: wp-pass    ports:      - 8889:3306    networks:      - wp-back  phpmyadmin:    depends_on:      - db    image: phpmyadmin/phpmyadmin    environment:      PMA_HOST: db      MYSQL_USER: wp-user      MYSQL_PASSWORD: wp-pass      MYSQL_ROOT_PASSWORD: rootPassword    ports:      - 3001:80    networks:      - wp-back  wordpress:    depends_on:      - db    image: wordpress:latest    ports:      - 8888:80      - 443:443    environment:       WORDPRESS_DB_HOST: db       WORDPRESS_DB_USER: wp-user       WORDPRESS_DB_PASSWORD: wp-pass    volumes:      - ./wordpress-files:/var/www/html    container_name: wordpress-site    networks:      - wp-back

The database volume is a named volume wp-data, while the wordpress html is a bind-mount to your current directory ./wordpress-files .


Please take a look at the following compose script. I tried and tested. It works fine.

version: '2'services:  db:    image: mysql:latest    container_name: db_server    volumes:      - ./database/data:/var/lib/mysql      - ./database/initdb.d:/docker-entrypoint-initdb.d    restart: always    environment:      MYSQL_ROOT_PASSWORD: password123 # any random string will do      MYSQL_DATABASE: udb_test # the name of your mysql database      MYSQL_USER: me_prname # the name of the database user      MYSQL_PASSWORD: password123 # the password of the mysql user  example:    depends_on:      - db    image: wordpress:php7.1 # we're using the image with php7.1    container_name: wp-web    environment:      WORDPRESS_DB_HOST: db:3306      WORDPRESS_DB_USER: me_prname      WORDPRESS_DB_PASSWORD: password123      WORDPRESS_DB_NAME: udb_test    ports:      - "1234:80"    restart: always    volumes:      - ./src:/var/www/html

Let me know if you encounter further issues.


if you want it all in one container you can refer this repo here,https://github.com/akshayshikre/lamp-alpine/tree/development

Here from lamp-alpine image is usedThen mysql, php, apache2 (lamp stack) is installed and copied local wordpress demosite and db for demo purpose

if you do not want any kind of continuous integration part ignore .circleci folderCheck docker-compose file and Dockerfile, Environment variables are in .env file