4.1 KiB
Using Docker for local development
You can use Docker to have a local CONSUL installation for development if:
- You're having troubles having prerequisites installed.
- You want to do a quick local installation just to try CONSUL or make a demo.
- You prefer not to interfer with other rails installations.
Prerequisites
You should have installed Docker and Docker Compose in your machine:
macOS
You can follow the official docker install
Or if you have homebrew and cask installed you can just:
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
- Install Docker:
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
- Install Docker Compose
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
https://www.docker.com/get-started --> select Download for Windows with default options checked, and run. Should take ~5 minutes.
If you encounter the "WSL 2 installation incomplete" error:
- Start PowerShell as Administrator
- run
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - run
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - install WSL2 Linux kernel update package for x64 machines
- run
wsl --set-default-version 2 - Restart your PC
- The Docker Enginer will start up. Give it a few minutes. You now have the option of using the docker desktop app (GUI) and
dockerPowerShell/Bash commands
Installation
Clone the repo on your computer and enter the folder:
git clone git@github.com:consul/consul.git
cd consul
macOS & Linux
Then lets create our secrets and database config files based on examples:
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:
docker build -t consul .
Create your app database images:
POSTGRES_PASSWORD=password docker-compose up -d database
Once built you can 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 with Docker
macOS & Linux
Now we can finally run the application with:
POSTGRES_PASSWORD=password docker-compose up
And you'll be able to access it at your browser visiting http://localhost:3000
Additionally, if you want to run the rails console just run in another terminal:
POSTGRES_PASSWORD=password docker-compose run app rails console
To verify the containers are up execute:
docker ps .
You should see output similar to this:

Windows
Pending to be completed... Contributions Welcome!
Having trouble?
Run these commands at Consul's directory, to erase all your previous Consul's Docker images and containers. Then restart the Docker installation process:
- Remove all CONSUL images:
docker-compose down --rmi all -v --remove-orphans
- Remove all CONSUL containers
docker-compose rm -f -s -v
- Verify if there is some container yet:
docker ps -a
Case positive, remove each one manually:
docker container rm <container_id>