Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。
透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?
總之,就當作的隨手雜記文吧!
本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP25。
本回來使用一下 Docker Engine 來完成建置 "gstreamer-sharp.dll", "gio-sharp.dll", "glib-sharp.dll" 的作業。
由於在 Docker Engine 中所用的操作指令,也都可以獨立在 WSL 底下所建立的獨立 Ubuntu 環境中透過輸入指令完成。

(請自己挑一個裝,但還是建議比較通用的版本 Ubuntu 22.04.5 LTS)
如果只做一次就好,在整個工作流程上不會有重複的重新產生上述相關 *.dll 的需要時,使用 Docker Engine 來處理就又會顯得很多餘就是。
如果安裝好 Docker Engine 之後,透過命令提示字元當中的指令:
docker --version
應該可以看到如下回應:
接著切換到所準備好的 dockerfile 所在的路徑後,執行指令:
docker build -t gstreamer-sharp-builder -f build-gstreamer-sharp.dockerfile .

應該可以看到如下 docker build 的回應:



(不得不說每次看 dockerfile 有正確在執行的時候都會有莫名的成就感)
執行完成後,看到顯示的:
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/py4v669s0ktvnpzptt3ojj9ae
代表可以到 Docker Desktop 當中看 Build History:

但這是建立在 Docker Engine 是透過 Docker Desktop 安裝來的前提之上(且是直接安裝的 Windows 環境中,非 WSL)。
再透過 docker 的指令,把已經 build 好的 *.dll 們給抓出來到 Windows 環境中已知的路徑資料夾當中:
docker run --rm -it -v C:\Tmp\ForDocker\Gstreamr-DLLs:/output gstreamer-sharp-builder
(此處 Windows 的已知路徑資料夾為 "C:\Tmp\ForDocker\Gstreamer-DLLs")

看到上述的指令執行後的回應為:
'/app/artifacts/./gstreamer-sharp.dll' -> '/output/./gstreamer-sharp.dll'
'/app/artifacts/./gio-sharp.dll' -> '/output/./gio-sharp.dll'
'/app/artifacts/./glib-sharp.dll' -> '/output/./glib-sharp.dll'

成功抓取完成: