【问题标题】:Cannot use Version 2 docker-compose files on Vagrant无法在 Vagrant 上使用版本 2 docker-compose 文件
【发布时间】:2016-10-10 19:02:18
【问题描述】:

我遇到了一个莫名其妙的问题。

我无法在 vagrant guest 上使用 docker-compose 版本 2 文件。 (如果重要的话,主机是 15.10 ubuntu)。

我收到以下错误: Docker 引擎小于 Compose 要求的最小值。您当前的项目需要 1.10.0 或更高版本的 Docker 引擎

我使用的 Vagrantfile 如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :
# SET THE IP ADDRESS AND BRIDGE SELECTION TO MATCH YOUR NETWORK
#

unless Vagrant.has_plugin?("vagrant-docker-compose")
  system("vagrant plugin install vagrant-docker-compose")
  system("vagrant plugin install vagrant-vbguest")
  puts "Dependencies installed, please try the command again."
  exit
end
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.synced_folder "./web", "/var/www", create: true, group: "www-data", owner: "www-data"
  config.vm.provision :shell, path: "./provision/setup.sh"
  config.vm.provision "shell", inline:
     "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
  config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
  # Assign a name to your host VM
  config.vm.hostname = "docker"
  # Use the phusion ubuntu box for our host VM
  config.vm.box = "phusion/ubuntu-14.04-amd64"
  # Run scripts to place web, docker and repo files
  config.vm.provision :shell, path: "./provision/public_gitrepos_to_vagrant_dir.sh"

  # Forward port 8080 to host machine
  config.vm.network "forwarded_port", guest: 80, host: 8081
  config.vm.network "forwarded_port", guest: 443, host: 8082
  config.vm.network "forwarded_port", guest: 8000, host:8000
  #network
  config.vm.network "public_network", ip: "192.168.0.60"

  # Sync your project in the /vagrant directory inside the VM
  config.vm.synced_folder ".", "/vagrant"

  config.vm.provision :docker
  config.vm.provision :docker_compose, yml: "/vagrant/docker/docker-compose.yml", rebuild: true, run: "always"
  config.vm.provision :shell, path: "./provision/dockerstart.sh"
  end

Docker-compose 适用于 V1 版本的 YAML 文件,但给我警告并在 V2 中失败。 V2 在主机上运行良好,只有在 Vagrant 上我有这个问题。

如何让 V2 docker-compose 文件与 Vagrant 一起使用?我只是遗漏了什么,还是一个更大的问题?

【问题讨论】:

    标签: linux docker vagrant docker-compose


    【解决方案1】:

    问题

    旧 Docker 版本

    在该 Vagrant VM 上运行的 Docker 安装已经过时。根据您看到的错误,它比 Docker Compose v2 所需的最低 1.10.0 旧。

    我收到以下错误:Docker 引擎小于 Compose 要求的最小值。您当前的项目需要 1.10.0 或更高版本的 Docker 引擎

    这是您下载的盒子的来源:

    https://oss-binaries.phusionpassenger.com/vagrant/boxes/

    Phusion page 旁边有一个通过“预建框”链接到上面的链接。从它们最后一次更新的日期可以看出,2014 年 5 月,这在 Docker 时代是永远的。

    根据 Docker Compose 文档: https://docs.docker.com/compose/compose-file/#/version-2

    Compose 1.6.0+ 支持版本 2 文件,并且需要 1.10.0+ 版本的 Docker 引擎。

    解决方案

    Ubuntu 主机上的本地 Docker

    当您在主机上运行 Ubuntu 时,您可以直接运行本机 Docker。与在 VM 中相比,使用它会更快、更简单。

    在 Ubuntu 上安装:https://docs.docker.com/engine/installation/linux/ubuntulinux/

    Vagrant Docker 提供者

    如果您的要求是在 Vagrant 中运行,您可以使用 Vagrant 的内置 Docker 提供程序来管理它,无需 VM/VBox: https://www.vagrantup.com/docs/docker/boxes.html

    Docker 提供者不需要 Vagrant 盒子。 config.vm.box 设置是完全可选的。

    注意:为此,您需要在 Ubuntu 主机上安装 Docker。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多