💻

python-container-code-patch

👤 user_96b3f16c 📦 v1.0.0 ⭐ 4.1 ⬇️ 14 下載
💻 開發程式設計 免費

📖 技能介紹


name: python-container-code-patch slug: python-container-code-patch displayName: python-container-code-patch version: 1.0.0 description: 修改執行中Docker容器的Python程式碼。備份→修改→替換→重啟。


容器內Python程式碼修改

流程

方式A:整檔案替換 + docker cp(推薦,2026-08-11 驗證)

非 bind mount 的映象層檔案(如 /app/processor_ai.py),最可靠的方式是本地改好後整檔案 docker cp 覆蓋:

# 1. 讀取容器當前檔案(注意:NAS 原始檔可能與容器內版本不同!)
docker exec container cat /app/processor_ai.py > /home/user/current.py

# 2. 本地修改(python3 指令碼:讀→replace→寫)
#    修改前確認目的碼塊在容器版本中存在——NAS源≠容器程式碼時 grep 會失敗
python3 /home/user/patch_script.py

# 3. docker cp 覆蓋容器內檔案
docker cp /home/user/fixed.py container:/app/processor_ai.py

# 4. 重啟容器載入新程式碼
docker restart container   # 或 Docker API /containers/<name>/restart

# 5. 驗證(grep 新內容 + 實際跑一遍)
docker exec container grep -c "新函式名" /app/processor_ai.py
docker exec container python3 /app/processor_ai.py   # 或 processor 的入口

要點: - 容器重啟後文件保留(docker cp 寫容器可寫層);重建映象會回退 → 同步 NAS 原始檔(見 docker-container-ops 的 /vol1 單掛載模式) - 覆蓋後必須重啟容器,程序不會熱載入舊檔案內容 - 修改 processor_ai.py 時注意可能有多處模板(如系統提示詞 + 生成函式各一處),只改一處會導致部分輸出走舊格式

小蔥技能7w4.net持續更新中。

方式B:函式邊界拼接(舊方法)

# 1. 備份
docker cp container:/app/target.py /home/user/scripts/backup.py

# 2. 在本地修改檔案
# 3. 上傳新函式到容器
docker cp /tmp/new_func.py container:/tmp/new_func.py

# 4. 容器內替換(Python拼接)
docker exec container python3 -c "
lines=open('/app/target.py').readlines()
new=open('/tmp/new_func.py').read()
# 找到函式邊界(def xxx → 下一個def)
start,end=None,None
for i,l in enumerate(lines):
    if l.startswith('def old_function'): start=i
    if start and l.startswith('def ') and i>start: end=i; break
lines=lines[:start]+[new+'\n\n']+lines[end:]
open('/app/target.py','w').writelines(lines)
"

# 5. 重啟容器
docker restart container

# 6. 驗證
docker exec container python3 -c "from target import send; send()"

注意

  • 查詢函式邊界:def old_func到下一個def next_func
  • Python縮排必須保持一致
  • 大檔案用行號範圍替換更快:docker exec container sed -n '100,200p'

🤖 AI 評測

這是一個解決特定場景的工具,流程清晰、步驟易懂,對簡單程式碼修改很實用。但內容比較基礎,缺乏實際案例和複雜場景的處理指導,邊界情況的說明也不夠充分。總體質量中等偏實用,仍有較大改進空間。

📊 多維度評分

適應性3.8
規範性4
有效性4.3
可靠性3.5
可信度5

📁 包含檔案 (1 個)

📄 SKILL.md 2.6 KB