透過Tianocore docker container Build Code

想了想還是補一補。主要是寫給對docker不熟的你

這裡可以看到有哪些是Tianocore提供的container,點你要的image name進去之後,會看到下面的畫面,docker pull一串就是利用docker把image抓下來的指令了。

前置作業很簡單:

# 安裝docker,docker.io是ubuntu管理的docker組合包。遇到Ubuntu太舊,repo提供的版本太低的請自行google怎麼從docker官方安裝
sudo apt install docker.io -y
# 這裡以ubuntu 20.04為例,不指定tag(上圖的a0dd931)就會自動抓最新的下來
sudo docker pull ghcr.io/tianocore/containers/ubuntu-20-build

就這樣,接下來會是稍微複雜一點的部分,主要是透過-v將host的directory映射到container裡面,詳細說明可以看這裡

# 假設目前在你的home directory
# 透過下面這行就能將桌面的Edk2資料夾映射到container裡的/code(對,是根目錄下的code資料夾)。
# -it可以讓我們透過terminal直接在container裡像控制自己的PC一樣操作container
# --rm表示我們要建立一個免洗的container,也就是說只要我們一離開,這個container就會被刪掉
# -v host_directory:container_directory 將host的directory映射到container裡面,host_directory可以是相對路徑(docker v23之後)
sudo docker run -it --rm -v ./Desktop/Edk2:/code ghcr.io/tianocore/containers/ubuntu-20-build:latest

# 進去之後會在根目錄/ 底下,直接進/code就能看到Edk2的資料夾內容了
cd code
# 接下來就看你想幹什麼,假如我想build OvmfPkg就
cd OvmfPkg
./build.sh

# 想離開就
exit

其實不難,真的。想要自動化一點可以研究看看dockerfile。

發表留言