---
# System prepended metadata

title: Note for product distribution (docker)
tags: [By_Ivan_note]

---

# 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