Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何为不同模块构建docker容器_Macos_Docker_Vagrant - Fatal编程技术网

Macos 如何为不同模块构建docker容器

Macos 如何为不同模块构建docker容器,macos,docker,vagrant,Macos,Docker,Vagrant,我正在通过如下所示的vagrant机器为不同的模块构建docker容器 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.

我正在通过如下所示的vagrant机器为不同的模块构建docker容器

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容器。如何操作。

您可以创建docker文件并使用docker build创建映像:

获得图像后,可以使用run创建容器: