Preparing a PostgreSQL database

Like MongoDB, we will prepare a PostgreSQL instance for our CMS application. We will change our persistence layer to demonstrate how Spring Data abstracts it for developers. Then, we need to prepare a Docker Postgres instance for that.

We will use the version 9.6.6 of Postgres and use the alpine tag because it is smaller than other Postgres images. Let's pull our image. The command should be like this:

docker pull postgres:9.6.6-alpine

Then, wait until the download ends.

In the previous section, we created our Docker network called cms-application. Now, we will start our Postgres instance on that network as we did for MongoDB. The command to start the Postgres should be the following:

docker run -d --name postgres --net cms-application -p 5432:5432 -e POSTGRES_PASSWORD=cms@springfive
postgres:9.6.6-alpine

The list of parameters is the same as we passed for MongoDB. We want to run it in background mode and attach it to our custom network. As we can see, there is one more new parameter in the docker run command. Let's understand it:

  • -e: This enables us to pass environment variables for a container. In this case, we want to change the password value.

Good job. We have done our infrastructure requirements. Let's understand the persistence details right now.