gpt4 book ai didi

linux - 无法在 Vagrant 上使用版本 2 docker-compose 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:28 24 4
gpt4 key购买 nike

我有一个莫名其妙的问题。

我不能在 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 一起工作?我只是遗漏了什么还是这是一个更大的问题?

最佳答案

问题

旧 Docker 版本

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

I am getting the following error: The Docker Engine is less than the minimum required by Compose. Your current project requires a Docker Engine of version 1.10.0 or greater

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

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

马上Phusion page通过“预建框”有一个指向上面的链接。您可以从它们的最后更新日期看到 2014 年 5 月,这在 Docker-time 中是永远的。

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

Version 2 files are supported by Compose 1.6.0+ and require a Docker Engine of version 1.10.0+.

解决方案

Ubuntu 主机上的 native Docker

当您在主机上运行 Ubuntu 时,您可以直接运行 native 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

The Docker provider does not require a Vagrant box. The config.vm.box setting is completely optional.

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

关于linux - 无法在 Vagrant 上使用版本 2 docker-compose 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com