Dockerfile
📝 基本語法
FROM <image>[:<tag>] # 指定基底映像
WORKDIR <path> # 設定工作目錄
COPY <src> <dest> # 複製檔案或目錄到容器中
ADD <src> <dest> # 類似 COPY,支援遠端 URL、壓縮檔解壓
RUN <command> # 在建置過程中執行指令
ENV <key>=<value> # 設定環境變數
ARG <name>=<default> # 建置參數(只能在建置時使用)
EXPOSE <port> # 文件性質,提示容器會使用的埠
CMD ["executable", "param"] # 容器啟動時的預設指令,可被覆蓋
ENTRYPOINT ["executable"] # 容器啟動時的主要指令,通常搭配 CMD
LABEL <key>=<value> # 加上中繼資料📦 最小範例
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]🏗️ 多階段建置
🔧 常見技巧
1. 使用 .dockerignore
.dockerignore2. 減少層數
3. 指定非 root 使用者
4. 健康檢查
📊 Dockerfile 範例
Flask App
R + Shiny App
🔒 最佳實務
📚 參考資源
✅ 結語
Last updated