是否可以使用vagrant + aws provider + docker provider?

时间:2015-12-03 10:55:58

标签: amazon-web-services docker vagrant

我一直开始搞乱流浪汉和AWS。但是,我想在我流浪的时候创建容器,并希望将我的项目设置为使用此AWS服务器作为主机的docker项目。

我设法在使用虚拟框并指定docker.vagrant_vagrantfile = "host/Vagrantfile"时使用此功能但是当我将AWS作为主机执行相同操作时它似乎无法工作,因为看起来docker仍在尝试在本地创建而不是在主机上。

这就是我的项目设置测试方法。我有一个主文件夹vagrant_docker_aws,里面我有一个名为host的文件夹,其中包含我的主机' vagrantfile然后在vagrant_docker_aws的根目录中我有一个带有指定容器的vagrantfile。此设置在本地工作。

这是我的主机/ Vagrantfile的样子。我在使用cygwin和rsync的Windows上。

# -*- mode: ruby -*-
# vi: set ft=ruby :

ENV["VAGRANT_DETECTED_OS"] = ENV["VAGRANT_DETECTED_OS"].to_s + " cygwin"

Vagrant.configure(2) do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id = ""
    aws.secret_access_key = ""
    aws.instance_type = "t2.micro"
    aws.keypair_name = "dev"
    aws.region = ""
    aws.security_groups = [""]
    aws.associate_public_ip = true
    aws.availability_zone = ""
    aws.subnet_id =""

    aws.ami = "ami-b95d04da"
    override.ssh.username = "ubuntu"
    override.ssh.private_key_path = ""
  end

  config.vm.provision "docker"
end

这就是vagrant_docker_aws根目录中的vagrant文​​件。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.provider "docker" do |docker|
    docker.vagrant_vagrantfile = "host/Vagrantfile"
  end

  config.vm.define "nginx-01" do |nginx|
    # can include settings for container such as disabling shared folders using nginx
    nginx.vm.provider "docker" do |docker|
      docker.image = "nginx"
      docker.ports = ['80:80', '443:443']
      docker.name = 'nginx-container'
    end
  end

  config.vm.define "postgres-01" do |postgres|
    # can include settings for container such as disabling shared folders using postgres
    postgres.vm.provider "docker" do |docker|
      docker.image = "postgres"
      docker.ports = ['5432:5432']
      docker.name = 'postgres-container'
    end
  end
end

基本上这是当我从vagrant_aws_docker里面运行vagrant时会发生什么的一个例子。

D:\Projects\vagrant_docker_aws>vagrant up --no-parallel
Bringing machine 'nginx-01' up with 'docker' provider...
Bringing machine 'postgres-01' up with 'docker' provider...
==> nginx-01: Docker host is required. One will be created if necessary...
    nginx-01: Vagrant will now create or start a local VM to act as the Docker
    nginx-01: host. You'll see the output of the `vagrant up` for this VM below.
    nginx-01:

我不是100%确定这是否可能/一个好主意(如果不是为什么?),但如果有人有任何想法,我将不胜感激。

注意:我知道我不应该将我的AWS凭证粘贴到文件中,而是使用ENV变量,但我现在只想让它工作。

0 个答案:

没有答案