安裝目錄下我使用的是無業遊民,而不是讓我們說搬運工,撰寫,作爲vagrantfile是一個Ruby文件,它提供了更多的靈活性流浪使用泊塢窗作爲供應商在MacOS,不可能在容器
我Vagrantfile樣子這
Vagrant.configure(2) do |config|
config.vm.define "db" do |app|
app.vm.provider "docker" do |d|
d.image = "postgres:9.5"
d.name = "myproject_db"
d.env = {
'POSTGRES_USER' => "admin",
'POSTGRES_PASSWORD' => "password",
}
end
end
config.vm.define "fpm" do |app|
app.vm.provider "docker" do |d|
d.build_dir = "dockerfiles/php-fpm/"
d.name="myproject_fpm"
d.link "myproject_db:db"
d.volumes = [
"#{ENV['PWD']}/myproject:/var/www/symfony2",
]
end
end
end
它工作完全正常,當Linux的硬件主機上,但它不能在Mac,因爲vagrant up --provider docker
將推出一箇中間的Linux中運行泊塢窗。因此,這將失敗,因爲
d.volumes = [
"#{ENV['PWD']}/myproject:/var/www/symfony2",
]
需要#{ENV['PWD']}
從MacOS的機器,但在Linux中運行,所以不存在路徑和失敗。然而,我不能把相對路徑,因爲碼頭需要一個絕對的一個
所以有什麼解決方法嗎? (除了創建自己的虛擬機,然後我安裝vagrant並從那裏運行命令)
感謝,實際上作爲一種解決方法,我做了類似的事情,但手動(即設置第一個vagrant文件,這是安裝我的存儲庫,然後安裝vagrant和docker等在其中)您的解決方案作爲製造的優勢自動化:),我將嘗試它並使其交叉平臺(因爲我不想在Linux上運行時擁有虛擬機) –
您可以將基於主機操作系統的條件配置放在簡單的IF塊內,如下所示:如果/darwin/.match(RUBY_PLATFORM)' –
是的,我正在用類似的東西,使用linux的#env {pwd}和其他的硬編碼絕對路徑。 –