Created
May 2, 2017 19:58
-
-
Save litvil/d6f0803d2410eac16f3fa94f55d9aea1 to your computer and use it in GitHub Desktop.
Databases with Vagrant in Docker containers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
which docker &>/dev/null | |
if [ $? -eq 1 ]; then | |
sudo apt-get update | |
sudo apt-get install -y htop vim screen tmux wget curl | |
sudo wget -qO- https://get.docker.com/ | sh | |
sudo usermod -a -G docker vagrant | |
fi | |
(cd /vagrant && sudo make run) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DB_USERNAME ?= dbuser | |
DB_PASSWORD ?= dbpass | |
BIND_HOST ?= 0.0.0.0 | |
POSTGRESQL_IMAGE ?= postgres:9.6 | |
POSTGRESQL_CONTAINER ?= upper-postgresql | |
POSTGRESQL_PORT ?= 5432 | |
MYSQL_IMAGE ?= mysql:5.7 | |
MYSQL_CONTAINER ?= upper-mysql | |
MYSQL_PORT ?= 3306 | |
MYSQL55_IMAGE ?= mysql:5.5 | |
MYSQL55_CONTAINER ?= upper-mysql-5.5 | |
MYSQL55_PORT ?= 3355 | |
MARIADB_IMAGE ?= mariadb:10.1 | |
MARIADB_CONTAINER ?= upper-mariadb | |
MARIADB_PORT ?= 13306 | |
MARIADB55_IMAGE ?= mariadb:5.5 | |
MARIADB55_CONTAINER ?= upper-mariadb-5.5 | |
MARIADB55_PORT ?= 13355 | |
MONGO_IMAGE ?= mongo:3.0 | |
MONGO_CONTAINER ?= upper-mongo | |
MONGO_PORT ?= 27017 | |
MSSQL_IMAGE ?= microsoft/mssql-server-linux:ctp1-4 | |
MSSQL_CONTAINER ?= upper-mssql | |
MSSQL_PORT ?= 1433 | |
run: | |
$(MAKE) mysql & \ | |
$(MAKE) postgresql & \ | |
$(MAKE) mongo & \ | |
$(MAKE) mssql & \ | |
wait && \ | |
docker ps -a | |
mongo: | |
docker pull $(MONGO_IMAGE) && \ | |
(docker stop $(MONGO_CONTAINER) || exit 0) && \ | |
(docker rm $(MONGO_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "MONGO_USER=$(DB_USERNAME)" -e "MONGO_PASSWORD=$(DB_PASSWORD)" -e "MONGO_DATABASE=$(DB_USERNAME)" \ | |
-p $(BIND_HOST):$(MONGO_PORT):27017 --name $(MONGO_CONTAINER) $(MONGO_IMAGE) | |
mariadb-5.5: | |
docker pull $(MARIADB55_IMAGE) && \ | |
(docker stop $(MARIADB55_CONTAINER) || exit 0) && \ | |
(docker rm $(MARIADB55_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "MARIADB_USER=$(DB_USERNAME)" -e "MYSQL_PASSWORD=$(DB_PASSWORD)" -e "MYSQL_ALLOW_EMPTY_PASSWORD=1" -e "MYSQL_DATABASE=$(DB_USERNAME)" \ | |
-p $(BIND_HOST):$(MARIADB55_PORT):3306 --name $(MARIADB55_CONTAINER) $(MARIADB55_IMAGE) | |
mariadb: | |
docker pull $(MARIADB_IMAGE) && \ | |
(docker stop $(MARIADB_CONTAINER) || exit 0) && \ | |
(docker rm $(MARIADB_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "MARIADB_USER=$(DB_USERNAME)" -e "MYSQL_PASSWORD=$(DB_PASSWORD)" -e "MYSQL_ALLOW_EMPTY_PASSWORD=1" -e "MYSQL_DATABASE=$(DB_USERNAME)" \ | |
-p $(BIND_HOST):$(MARIADB_PORT):3306 --name $(MARIADB_CONTAINER) $(MARIADB_IMAGE) | |
mysql: | |
docker pull $(MYSQL_IMAGE) && \ | |
(docker stop $(MYSQL_CONTAINER) || exit 0) && \ | |
(docker rm $(MYSQL_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "MYSQL_USER=$(DB_USERNAME)" -e "MYSQL_PASSWORD=$(DB_PASSWORD)" -e "MYSQL_ALLOW_EMPTY_PASSWORD=1" -e "MYSQL_DATABASE=$(DB_USERNAME)" \ | |
-p $(BIND_HOST):$(MYSQL_PORT):3306 --name $(MYSQL_CONTAINER) $(MYSQL_IMAGE) | |
mysql-5.5: | |
docker pull $(MYSQL55_IMAGE) && \ | |
(docker stop $(MYSQL55_CONTAINER) || exit 0) && \ | |
(docker rm $(MYSQL55_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "MYSQL_USER=$(DB_USERNAME)" -e "MYSQL_PASSWORD=$(DB_PASSWORD)" -e "MYSQL_ALLOW_EMPTY_PASSWORD=1" -e "MYSQL_DATABASE=$(DB_USERNAME)" \ | |
-p $(BIND_HOST):$(MYSQL55_PORT):3306 --name $(MYSQL55_CONTAINER) $(MYSQL55_IMAGE) | |
mssql: | |
docker pull $(MSSQL_IMAGE) && \ | |
(docker stop $(MSSQL_CONTAINER) || exit 0) && \ | |
(docker rm $(MSSQL_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "ACCEPT_EULA=Y" \ | |
-e 'SA_PASSWORD=my$$Password' \ | |
-p $(BIND_HOST):$(MSSQL_PORT):1433 --name $(MSSQL_CONTAINER) $(MSSQL_IMAGE) | |
postgresql: | |
docker pull $(POSTGRESQL_IMAGE) && \ | |
(docker stop $(POSTGRESQL_CONTAINER) || exit 0) && \ | |
(docker rm $(POSTGRESQL_CONTAINER) || exit 0) && \ | |
docker run \ | |
-d \ | |
--restart=always \ | |
-e "POSTGRES_USER=$(DB_USERNAME)" -e "POSTGRES_PASSWORD=$(DB_PASSWORD)" \ | |
-p $(BIND_HOST):$(POSTGRESQL_PORT):5432 --name $(POSTGRESQL_CONTAINER) $(POSTGRESQL_IMAGE) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant.configure("2") do |config| | |
config.vm.box = "phusion/ubuntu-14.04-amd64" | |
config.vm.hostname = "db.dev" | |
config.vm.network :private_network, ip: "192.168.36.10" | |
config.vm.provider :virtualbox do |vb| | |
vb.gui = false | |
vb.customize ["modifyvm", :id, "--memory", "2048"] | |
vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"] | |
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"] | |
end | |
config.ssh.username = "vagrant" | |
config.ssh.forward_agent = true | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment