Files
grecia/docs/en/installation/docker.md
Javi Martín b3facb39bf Don't use an image to show the results of docker ps
The alternative text of the image was useless, and we were depending on
an external server in order to display it. Furthermore, the text inside
the image was pretty small.

So we're displaying the output of the command as plain text.
2024-09-19 15:20:38 +02:00

3.2 KiB

Using Docker for local development

Prerequisites

Docker and Docker Compose should be installed on your machine. The installation process depends on your operating system.

macOS

You can follow the official Docker installation documentation.

Or, if you have homebrew installed, you can just:

brew install docker
brew install docker-compose
brew install --cask docker
open -a docker

You'll be asked to give permissions to the Docker app and type your password; then, you're set.

Linux

  1. Install Docker and Docker Compose. For example, in Ubuntu 22.04:
sudo apt-get install docker.io docker-compose-v2

Windows

The official Docker documentation includes a page with instructions to install Docker Desktop on Windows. From there, download Docker Desktop for Windows and execute it.

Installation

Clone the repo on your computer and enter the folder:

git clone https://github.com/consuldemocracy/consuldemocracy.git
cd consuldemocracy

Then create the secrets and database config files based on the example files:

cp config/secrets.yml.example config/secrets.yml
cp config/database-docker.yml.example config/database.yml

Then build the image with:

POSTGRES_PASSWORD=password docker-compose build

And create the containers:

POSTGRES_PASSWORD=password docker-compose create

You can now initialize your development DB and populate it with:

POSTGRES_PASSWORD=password docker-compose run app rake db:create db:migrate
POSTGRES_PASSWORD=password docker-compose run app rake db:dev_seed

Running Consul Democracy in development with Docker

Now we can finally run the application with:

POSTGRES_PASSWORD=password docker-compose up

And you'll be able to access it by opening your browser and visiting http://localhost:3000.

Additionally, if you'd like to run the rails console:

POSTGRES_PASSWORD=password docker-compose run app rails console

To verify the containers are up execute:

docker ps

You should see an output similar to this:

CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS      NAMES
603ec83b78a6   consuldemocracy-app   "./docker-entrypoint…"   23 seconds ago   Up 22 seconds              consuldemocracy-app-run-afb6d68e2d99
d57fdd9637d6   postgres:13.16        "docker-entrypoint.s…"   50 minutes ago   Up 22 seconds   5432/tcp   consuldemocracy-database-1

Troubleshooting

Run these commands inside Consul Democracy's directory, to erase all your previous Consul Democracy's Docker images and containers. Then start the Docker installation process once again.

  1. Remove all Consul Democracy images:
docker-compose down --rmi all -v --remove-orphans
  1. Remove all Consul Democracy containers:
docker-compose rm -f -s -v
  1. Check whether there are still containers left:
docker ps -a
  1. In case there are, remove each one manually:
docker container rm <container_id>