新增第二個Homestead Box

bigb1993發表於2020-08-21

前段時間突然需要學習一個phalcon框架,各方面因素需要一個Linux環境來安裝
這就出現問題了, 我常用的 homestead-7 的 vagrant box 是萬萬不敢動的。
於是查閱了一番資料之後進行了大膽的嘗試,現在我同時擁有一個開發環境和一個測試環境

直接上乾貨 首先根據 Summer老師的開發環境搭建課程 我們可以獲得第一個 homestead box

在這個教程中我們下載的 lc-homestead-8.2.1-*** 具體版本每個人情況不同
解壓之後的 metadata.json 檔案長這樣

{
    "name": "lc/homestead",        // 這就是我們要新增的 homestead box 的名字
    "versions": [{
        "version": "8.2.1",
        "providers": [{
            "name": "virtualbox",
            "url": "virtualbox.box"
        }]
    }]
}

接下來進到 Homestead/script 資料夾開啟 homestead.rb 這個檔案

class Homestead
    def Homestead.configure(config, settings)
        # Set The VM Provider
        ENV['VAGRANT_DEFAULT_PROVIDER'] = settings["provider"] ||= "virtualbox"

        # Configure Local Variable To Access Scripts From Remote Location
        scriptDir = File.dirname(__FILE__)

        # Allow SSH Agent Forward from The Box
        config.ssh.forward_agent = true

        # Configure The Box
        config.vm.define settings["name"] ||= "homestead-7"
        config.vm.box = settings["box"] ||= "lc/homestead"
        config.vm.box_version = settings["version"] ||= ">= 6.0.0"
        config.vm.hostname = settings["hostname"] ||= "homestead"

        # Configure A Private Network IP
        if settings["ip"] != "autonetwork"
            config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"
        else
            config.vm.network :private_network, :ip => "0.0.0.0", :auto_network => true
        end

        ...

可以發現兩個比較眼熟的名字, homestead-7lc-homestead

接下來,複製 Homestead 資料夾到 NewHomestead 並刪除 .vagrant
NewHomestead 資料夾內將 script/homestead.rb 內的 homestead-7 改為 homestead-test或你喜歡的名字
保險起見,我把 metadata.json 的名字也改了並重新新增了一個 vagrant box

{
    "name": "bt/homestead",        // 這就是我們要新增的 homestead box 的名字
    "versions": [{
        "version": "8.2.1",
        "providers": [{
            "name": "virtualbox",
            "url": "virtualbox.box"
        }]
    }]
}
# Configure The Box
        config.vm.define settings["name"] ||= "homestead-bt"
        config.vm.box = settings["box"] ||= "bt/homestead"
        config.vm.box_version = settings["version"] ||= ">= 6.0.0"
        config.vm.hostname = settings["hostname"] ||= "homestead"

然後修改 NewHomestead下的 Homestead.yaml

$ cd NewHomestead && vagrant up
Bringing machine 'homestead-bt' up with 'virtualbox' provider...
==> homestead-bt: Checking if box 'phalcon/homestead' version '8.2.1' is up to date...
==> homestead-bt: Clearing any previously set forwarded ports...
...

新增第二個Homestead Box

為什麼要叫 homestead-bt 呢,因為我在裡面裝了個寶塔…已刪

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章