Files
grecia/docs/en/installation/docker.md
Javi Martín 13c641eedc Update application name
Note that, in order to have some consistency, we're always writing
"Consul Democracy", instead of using capital letters sometimes (but not
always), like we did until now.
2023-07-12 15:36:49 +02:00

161 lines
4.2 KiB
Markdown

# Using Docker for local development
You can use Docker to have a local Consul Democracy installation for development if:
- You're having troubles having [prerequisites](prerequisites.md) installed.
- You want to do a quick local installation just to try Consul Democracy or make a demo.
- You prefer not to interfere with other rails installations.
## Prerequisites
You should have installed Docker and Docker Compose in your machine:
### macOS
You can follow the [official docker install](https://docs.docker.com/docker-for-mac/install/)
Or if you have [homebrew](http://brew.sh) and [cask](https://caskroom.github.io/) installed you can just:
```bash
brew install docker
brew install docker-compose
brew cask install docker
open -a docker
```
You'll be asked to give Docker app permissions and type your password, then you're set.
### Linux
1. Install Docker:
```bash
sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
apt-cache policy docker-engine
sudo apt-get install -y docker-engine
```
2. Install Docker Compose
```bash
sudo curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/1.15.0/docker-compose-$(uname -s)-$(uname -m)"
sudo chmod +x /usr/local/bin/docker-compose
```
### Windows
Go to the [https://www.docker.com/get-started](Get Started with Docker) page. Under Docker Desktop, select Download for Windows with default options checked, and run. Should take about 5 minutes.
If you encounter the "WSL 2 installation incomplete" error:
1. Start PowerShell as Administrator
1. Run `dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart`
1. Run `dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart`
1. Install [WSL2 Linux kernel update package for x64 machines](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)
1. Run `wsl --set-default-version 2`
1. Restart your PC
1. The Docker Enginer will start up. Give it a few minutes. You now have the option of using the docker desktop app (GUI) and `docker` PowerShell/Bash commands
## Installation
Clone the repo on your computer and enter the folder:
```bash
git clone https://github.com/consul/consul.git
cd consul
```
### macOS & Linux
Then lets create our secrets and database config files based on examples:
```bash
cp config/secrets.yml.example config/secrets.yml
cp config/database-docker.yml.example config/database.yml
```
Then you'll have to build the container with:
```bash
POSTGRES_PASSWORD=password docker-compose build
```
Start the database service:
```bash
POSTGRES_PASSWORD=password docker-compose up -d database
```
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
```
### Windows
Pending to be completed... Contributions Welcome!
## Running local Consul Democracy with Docker
### macOS & Linux
Now we can finally run the application with:
```bash
POSTGRES_PASSWORD=password docker-compose up
```
And you'll be able to access it at your browser visiting [http://localhost:3000](http://localhost:3000)
Additionally, if you want to run the rails console just run in another terminal:
```bash
POSTGRES_PASSWORD=password docker-compose run app rails console
```
To verify the containers are up execute:
```bash
docker ps .
```
You should see output similar to this:
![docker ps](https://i.imgur.com/ASvzXrd.png)
### Windows
Pending to be completed... Contributions Welcome!
## Having trouble?
Run these commands at **Consul Democracy's directory**, to erase all your previous Consul Democracy's Docker images and containers. Then restart the Docker [installation process](#installation):
1. Remove all Consul Democracy images:
```bash
docker-compose down --rmi all -v --remove-orphans
```
2. Remove all Consul Democracy containers
```bash
docker-compose rm -f -s -v
```
3. Verify if there is some container yet:
```bash
docker ps -a
```
Case positive, remove each one manually:
```bash
docker container rm <container_id>
```