科技新知
把command line 的程式打包成Docker Image
平時我們用別人的Docker image,都以網絡服務為主,也就是,他們的image通常以常駐,打開某個網絡端口(UDP/TCP Port)提供服務。
但像nodejs, java等,其實是一些command line程式。它們其實可以一次性地執行後,回傳結果。
這次我們就以一個mdbook程式為例子,介紹打包的流程。但因為網站安全性問題,這裏提一些重點概念,手把手教學請到Github Repo中。
- 要注意使用Entrypoint,它有不同格式,各有不同的意義。
- 要注意把外部環境映射到內部環境中,這樣內部的mdbook才能看到你的檔案,也能輸出它的結果。
- 要注意權限問題,在預設環境下,是uid會是0。
- 要注意別名時的參數如何傳遞。