timmy / Python 單例模式實作
0 Lajky
0 Forky
1 Soubory
Naposledy aktivní 3 months ago
此 Python 程式碼實作了單例(Singleton)設計模式,確保一個類別在整個應用程式生命週期中只會有一個實例。透過覆寫 __new__ 方法,它保證每次創建該類別的物件時,都將返回同一個已存在的實例,避免重複創建。
| 1 | class Singleton: |
| 2 | _instance = None |
| 3 | |
| 4 | def __new__(cls): |
| 5 | if cls._instance is None: |
| 6 | cls._instance = super().__new__(cls) |
| 7 | return cls._instance |
| 8 | |
| 9 | |
| 10 | a = Singleton() |
timmy / Kubernetes 服務狀態與連線資訊概覽
0 Lajky
0 Forky
1 Soubory
Naposledy aktivní 3 months ago
此腳本用於顯示 Kubernetes 環境中 Pod、Service、NodePort、Ingress 的狀態與連線資訊,並列出 PVC,方便快速掌握服務部署與存取方式。特別適用於 k3s + Traefik 環境。
| 1 | #!/usr/bin/env bash |
| 2 | # 用途:查看 Kubernetes 服務狀態與實際連線方式 |
| 3 | # 包含:Pod、Service(NodePort)、Ingress(HTTP/HTTPS)、PVC |
| 4 | # 適用:k3s + Traefik |
| 5 | |
| 6 | set -euo pipefail |
| 7 | |
| 8 | echo |
| 9 | echo "=== Pods ===" |
| 10 | kubectl get pods -o wide |
timmy / Kubernetes PVC 檢查與救援 Pod
0 Lajky
0 Forky
1 Soubory
Naposledy aktivní 3 months ago
此 Kubernetes Pod 定義用於掛載指定的 PersistentVolumeClaim (PVC),並啟動一個 Alpine 容器長時間運行。其目的是提供一個臨時環境,讓使用者能夠進入容器內部,檢查、修改或救援 PVC 中的資料,並可選地啟用 root 權限來處理權限問題。它設定為 restartPolicy: Never 以避免自動重啟。
| 1 | apiVersion: v1 |
| 2 | kind: Pod |
| 3 | metadata: |
| 4 | name: pvc-inspector |
| 5 | labels: |
| 6 | app: rescue-tool |
| 7 | spec: |
| 8 | # 因為是臨時救援用,跑完或出錯不需要自動重啟 |
| 9 | restartPolicy: Never |
| 10 | volumes: |
timmy / Temporary Directory Management
0 Lajky
0 Forky
2 Soubory
Naposledy aktivní 3 months ago
此組合功能包括一個 Python 腳本和一個 Shell 腳本。Python 腳本用於創建和管理臨時目錄,以存放中間產物;Shell 腳本負責下載指定 URL 的檔案並解壓縮,並在執行完畢後自動清理臨時目錄,確保資源釋放。
| 1 | tmpdir="$(mktemp -d)" |
| 2 | trap 'rm -rf "$tmpdir"' EXIT |
| 3 | curl -fsSL "$URL" -o "$tmpdir/input.tar.gz" |
| 4 | tar -xzf "$tmpdir/input.tar.gz" -C "$tmpdir" |
timmy / 移除mp4檔案的元數據和章節
0 Lajky
0 Forky
1 Soubory
Naposledy aktivní 3 months ago
此腳本使用FFmpeg工具從指定的MP4文件中移除所有元數據和章節,並將結果保存到新的MP4文件中。這有助於減少文件大小或保護隱私。
| 1 | ffmpeg -i input.mp4 -map 0 -c copy -map_metadata -1 -map_chapters -1 output.mp4 |
timmy / Swap 檔案與分割區設定工具
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 7 months ago
| 1 | # 檢查目前是否有 swap 啟用 |
| 2 | swapon --show |
| 3 | free -h |
| 4 | |
| 5 | # 建立 2GB 的 swap 檔案(如果 fallocate 不支援可改用 dd) |
| 6 | sudo fallocate -l 2G /swapfile |
| 7 | sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 |
| 8 | |
| 9 | # 設定正確權限 |
| 10 | sudo chmod 600 /swapfile |
timmy / Docker 配置檔案 for Python App
0 Lajky
0 Forky
2 Soubory
Naposledy aktivní 7 months ago
此 Dockerfile 用於建立一個基於 Python 3.12 的輕量級 Docker 映像,從 Debian 12 (bookworm) 開始,安裝必要的依賴,並使用 uv 工具來管理 Python 環境和執行應用。它包括多階段構建以優化映像大小和安全性,並設置非 root 使用者來執行應用。
| 1 | .git |
| 2 | __pycache__/ |
| 3 | *.pyc |
| 4 | *.pyo |
| 5 | *.pyd |
| 6 | *.swp |
| 7 | .env |
| 8 | .venv |
| 9 | .uv/ |
| 10 | dist/ |
timmy / Python 應用程式 Docker 部署範本
0 Lajky
0 Forky
3 Soubory
Naposledy aktivní 9 months ago
這組 Dockerfile 和 docker-compose.yml 範本,幫你輕鬆將 Python 應用程式打包成 Docker 映像檔。它會自動處理相依套件安裝、Playwright 瀏覽器設定,並將程式碼即時同步到容器內,讓你在 Docker 環境下開發、部署都更順手。
| 1 | # Dockerfile |
| 2 | |
| 3 | # 使用 Python 官方的 slim-bookworm 映像作為基礎 (Python 3.12, Debian 12) |
| 4 | # slim 版本比較輕量,適合部署 |
| 5 | FROM python:3.12-slim-bookworm |
| 6 | |
| 7 | # 安裝系統依賴套件。這些是常見用於網頁自動化 (Playwright) 和影像處理 (OpenCV) 的依賴。 |
| 8 | # 請根據你的專案需求,移除不需要的套件,以減少映像檔大小。 |
| 9 | # apt-get update 用來更新套件清單,apt-get install -y --no-install-recommends 安裝指定的套件 |
| 10 | # --no-install-recommends 會避免安裝非必要的建議套件 |