2015-11-04 48 views
0

我正在通過如下所示的流浪機器爲不同模塊構建碼頭容器。如何爲不同模塊構建碼頭容器

DOCKER_HOST_NAME = "docker-host" 
# Require 'yaml' module 
require 'yaml' 

# Read details of containers to be created from YAML file 
# Be sure to edit 'containers.yml' to provide container details 
containers = YAML.load_file('environment/containers.yaml') 

# Create and configure the Docker container(s) 
Vagrant.configure("2") do |config| 

config.vm.define "#{DOCKER_HOST_NAME}", autostart: false do |config| 

# Always use Vagrant's default insecure key 
config.ssh.insert_key = false 

config.vm.box = "ubuntu/trusty64" 

config.vm.network "forwarded_port", guest: 8080, host: 1234 
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh",  auto_correct: true 
config.vm.network "forwarded_port", guest: 15672, host: 15672 
config.vm.network "private_network", ip: "192.168.50.50" 
config.vm.network "forwarded_port", guest: 5672, host: 5672 
config.vm.provider :virtualbox do |vb| 
    vb.name = "docker-host" 
end 
# provision docker environment 
config.vm.provision "docker" 

# The following line terminates all ssh connections. Therefore 
# Vagrant will be forced to reconnect. 
# That's a workaround to have the docker command in the PATH 
config.vm.provision "shell", inline: 
"ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill" 

# create required jars if not present. 
config.vm.provision "shell", inline: <<-SHELL 
    if [ "$SS_BUILD" == "NO" ] && [ -f "/vagrant/src/sonarCharts/notificationEmulator/target/notificationEmulator-1.0-SNAPSHOT.jar" ] && [ -f "/vagrant/src/sonarCharts/dataInputHandler/target/dataInputHandler-1.0-SNAPSHOT.jar" ] && [ -f "/vagrant/src/sonarCharts/controller/target/controller-1.0-SNAPSHOT.jar" ] && [ -f "/vagrant/src/sonarCharts/modelingWorker/target/modelingWorker-1.0-SNAPSHOT.jar" ] && [ -f "/vagrant/src/sonarCharts/contouringWorker/target/contouringWorker-1.0-SNAPSHOT.jar" ] 
then 
echo "ALL JAR FILES ARE PRESENT" 
else 
echo "Building the Jar Files...." 
sudo apt-get -y install maven 
sudo apt-get -y install default-jdk 
mvn -f /vagrant/src/sonarCharts/pom.xml clean install 
fi 
SHELL 
config.vm.synced_folder ENV['SS_INPUT'], "/vagrant/data/input" 
config.vm.synced_folder ENV['SS_OUTPUT'], "/vagrant/data/output" 

config.vm.provision "docker" do |docker| 
    docker.build_image "/vagrant/environment/base", args: "-t local/base" 
    docker.build_image "/vagrant/environment/rabbitmq", args: "-t local/rabbitmq" 
    docker.build_image "/vagrant/environment/notificationEmulator", args: "-t local/notificationEmulator" 
    docker.build_image "/vagrant/environment/dataInputHandler", args: "-t local/dataInputHandler" 
    docker.build_image "/vagrant/environment/controller", args: "-t local/controller" 
    docker.build_image "/vagrant/environment/modelingWorker", args: "-t local/modelingWorker" 
    docker.build_image "/vagrant/environment/contouringWorker", args: "-t local/contouringWorker" 
end 

config.vm.provider "virtualbox" do |virtualbox| 
    virtualbox.memory = 2048 
end 

end 
# Perform one-time configuration of Docker provider to specify 
# location of Vagrantfile for host VM; comment out this section 
# to use default boot2docker box 
config.vm.provider "docker" do |docker| 
docker.force_host_vm = true 
docker.vagrant_machine = "#{DOCKER_HOST_NAME}" 
docker.vagrant_vagrantfile = __FILE__ 
end 

# Iterate through the entries in the YAML file 
containers.each do |container| 
config.vm.define container["name"] do |cntnr| 

# Disable synced folders for the Docker container 
# (prevents an NFS error on "vagrant up") 
# cntnr.vm.synced_folder ".", "/vagrant", disabled: true 
# Configure the Docker provider for Vagrant 
cntnr.vm.provider "docker" do |docker| 

# Specify the Docker image to use, pull value from YAML file 
docker.image = container["image"] 

docker.build_dir = container["build_dir"] 
docker.build_args = container["build_args"] || [] 
docker.create_args = container["create_args"] || [] 
#docker.has_ssh = true 

# Specify port mappings, pull value from YAML file 
# If omitted, no ports are mapped! 
docker.ports = container["ports"] || [] 

# Mount voluems that are available in the Docker host 
docker.volumes = container["volumes"] || [] 

docker.remains_running = container["remains_running"] | true 

# Specify a friendly name for the Docker container, pull from YAML file 
docker.name = container["name"] 
end 
end 
end 

#Port for logging into the host VM 
config.ssh.port = 2222 
end 

我不想再使用vagrant並想在我的機器中建立docker容器。我怎樣才能做到這一點。

回答

相關問題