# Note for product distribution (docker) ###### tags: `By_Ivan_note` docker的使用: 統一性 規格化 輕量化 直接部署程式的缺點在哪? 規格掌控,OS版本會限制產品的開發 套件版本,需客製化的套件需要另外做安裝,並且主程式安裝前會需要另外做測試 分散的程式碼對安裝、管理造成麻煩 Objective: 只要在最初準備好環境,就能簡單的進行發布 對於使用者來說一鍵安裝,對於開發者來說希望減少packing的麻煩(統一的deploy手段) 遇上的問題: On the whole, its a tool for open source project 將container整體送出去 碰上kernel以及許多零散的lib "distribute" 牽涉到的問題較多,特別是GPLv3 若是完全在open source環境底下進行開發,就不會遇上這類問題 抑或是擁有能在container上運行的private kernel Observe base image: - ubuntu 的 base image 整體來說都是很free的license。進行商品化時只要將gcc以及bash移除,幾乎可以視為private的product 然而其中有一個 c package (bsdutils -> /readutmp.)會碰觸到GPLv3,且無法簡單的被移除 僅有此套件包有此問題,若找到取代、移除的辦法,ubuntu將可以簡單的被distribute - centOS base image中使用了很多GPLv3,基本上無法清乾淨 疑問點 ubuntu 的手冊上特別寫了,提供使用者做private的商品化。這份statement的可信度不低,商業化的ubuntu也存在,理論上在觀察時發現的GPLv3封包理應是可以被移除的。 https://www.linuxfoundation.org/wp-content/uploads/2020/04/Docker-Containers-for-Legal-Professionals-Whitepaper_v4.ac_-3.pdf