This article covers how to install Drupal with Docker Compose. Basically, installation process of Drupal can be simplified with the use of tools like Docker and Docker Compose. Docker Compose can be used to create a Drupal installation with an Nginx web server.
Drupal and Docker needs the following to work:
1. HTTP Server with PHP: We can either use Apache with PHP or Nginx with PHP. I'm going to demonstrate building the Docker using Apache with PHP. A Drupal docker can also have services like SSH (for drush alias to work) and some important utilities like vim
2. SQL Server: Choose your favourite SQL Service (MySQL or PostGRESQL or SQLite). I'm going to be using a MySQL docker. The idea behind using a separate docker for SQL is so that you have a freedom to choose an internal SQL service or an external SQL Services like Amazon RDS without affecting your Drupal environment.
The need to Use Docker to Run Drupal:
Using the Drupal and PostgreSQL images from Docker Hub offers the following benefits:
1. The configuration of the software has been done for you, which means that you don’t need to follow a step-by-step process for each application to get them running on your system.
2. Updating your software is as simple as downloading the latest images from Docker Hub.
3. Images and containers are self-contained, which means that they are easy to clean up if you decide to remove them.
How to Set Up Drupal ?
1. Create a new directory in your home folder called my_drupal and cd into it:
2. Create a file named docker-compose.yml in this folder and add the following contents. Set your own password for the POSTGRES_PASSWORD option.
3. From the my_drupal directory, start your Docker containers:
docker-compose up -d
4. The Docker containers will take a minute or two to start up Drupal and PostgreSQL. Afterwards, you can visit your Linode’s IP address in your web browser .
5. On the Set up database page, select PostgreSQL as the Database type and enter the following values:
Database name: postgres
Database username: postgres
Database password: The password you set in the docker-compose.yml file
Host (under Advanced Options): postgres
6. When creating your Drupal user, be sure to enter a password that is different from your PostgreSQL password.