每次只要遇到 Python 專案,我在運行前一定先看有沒有提供 Dockerfile。
Why?
你有沒有遇過安裝了 Python 2.7, 3.8, 3.9, 3.11,然後新程式只能跑在 3.10。
重點是還不一定能升級,裝好了 Python 3.11 不代表你可以跑 3.8, 3.9, 3.10
的程式!
Python Developer 裝這麼多版本不累嗎😅
我知道你會說 conda,玩 Python 的人不可能沒用過
Anaconda,它用來解決這惱人的依頼問題,讓你方便地換個程式就切換一套運行環境。
這發明很棒,真的,「先有需求」才有供給對吧😏
直到有一天 C 槽被各版本的 Python、各程式專屬的 environment
給佔滿
我最終決定把它們全都砍了,從此以後打死不在本機裝
Python
通通給我到容器🐋裡去吧!
不方便開發?
開發需求推薦 devcontainer
專案做好.devcontainer
設定檔 & 一鍵建立 GitHub CodeSpaces
Python 開發體驗一級棒👍
......前提是你懂 Docker
說回今天的主題,Stable Diffusion WebUI 和 Kohya's GUI,這兩套程式都有前人做了容器化。
我過往看過 Dockerfile 後認為「有最佳化的餘地,但沒什麼大問題」並直接使用了一段時間。
前兩週比較有空閒,於是來貢獻貢獻所學,重寫了更好的 Dockerfile。
bmaltais/kohya_ss
已經 PR 回原專案,現在
master branch 上面的 Dockerfile
是我重寫的
AUTOMATIC1111/stable-diffusion-webui
不接受 Dockerfile,我是放在自己的 GitHub,並做了整套的 CI