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