Docker建置Python筆記
新增檔案 Dockerfile
FROM python:3.11-slim
WORKDIR /app
# 安裝工具與 ODBC Driver
RUN apt-get update && apt-get install -y \
curl gnupg apt-transport-https unixodbc-dev gcc g++ make \
&& curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /usr/share/keyrings/microsoft.gpg \
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/debian/11/prod bullseye main" > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 \
&& rm -rf /var/lib/apt/lists/*
# 複製 requirements 並安裝
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 複製程式碼 (包含 app.py, templates/, cert.pem, key.pem)
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
新增檔案 requirements.txt
APScheduler
Flask
Flask-Cors
Flask-SQLAlchemy
google-api-python-client
google-auth-oauthlib
line-bot-sdk
opencv-python
openpyxl
pandas
pyexcel
pyexcel-xlsx
pyodbc
python-dotenv
pytz
requests
XlsxWriter
bulid影像檔
docker build -t chi .
建立完成後,如果成功你就會看到有 chi 這個 image
接下來就可以用這個image來建置 flask
新增5099 port的flask,建立資料夾 /share/Container/chi5099,把 app.py 及 templates ( app.py 裡的port用5000 )
docker build -t chi .
docker run -d --name chi5099 \
-p 5099:5000 \
-v /share/Container/chi5099:/app \
chi
由於範例要有連 pyodbc,因此有額外安裝 msodbcsql17,如果沒用到可以調整