最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將Python項(xiàng)目打包成Docker鏡像的全過(guò)程

 更新時(shí)間:2025年08月04日 10:35:19   作者:工程師丶佛爺  
在日常開(kāi)發(fā)中,我們經(jīng)常需要部署Python應(yīng)用到服務(wù)器、測(cè)試環(huán)境或交付他人使用,Docker作為容器化技術(shù)的代表,能夠打包整個(gè)項(xiàng)目及其依賴(lài),保證“在哪跑都一樣”,這篇文章將從零開(kāi)始,記錄我如何將一個(gè) Python項(xiàng)目打包為Docker鏡像的全過(guò)程,需要的朋友可以參考下

一、前言

在日常開(kāi)發(fā)中,我們經(jīng)常需要部署 Python 應(yīng)用到服務(wù)器、測(cè)試環(huán)境或交付他人使用。傳統(tǒng)方式依賴(lài)本地環(huán)境配置,一旦換機(jī)器或多人協(xié)作,很容易出現(xiàn)“本地運(yùn)行沒(méi)問(wèn)題、遠(yuǎn)程報(bào)錯(cuò)一堆”的情況。為了解決這種“環(huán)境地獄”問(wèn)題,Docker 作為容器化技術(shù)的代表,能夠打包整個(gè)項(xiàng)目及其依賴(lài),保證“在哪跑都一樣”。這篇文章將從零開(kāi)始,記錄我如何將一個(gè) Python 項(xiàng)目打包為 Docker 鏡像的全過(guò)程,適合有基本 Python 基礎(chǔ)但對(duì) Docker 不熟悉的開(kāi)發(fā)者參考。

二、項(xiàng)目簡(jiǎn)介與結(jié)構(gòu)

三、創(chuàng)建requirements.txt

pip freeze > requirements.txt

使用上面命令可能會(huì)打包很不需要的包,簡(jiǎn)潔一點(diǎn)打包方式

pip install pipreqs
pipreqs . --encoding=utf8 --use-local

四、編寫(xiě) Dockerfile 

# 使用官方 Python 基礎(chǔ)鏡像
FROM python:3.10-slim

# 設(shè)置工作目錄
WORKDIR /app

# 復(fù)制依賴(lài)文件并安裝
COPY requirements.txt .
RUN pip install -r requirements.txt

# 安裝依賴(lài)(官方源速度較慢,使用阿里源)
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 復(fù)制項(xiàng)目代碼
COPY . .

# 啟動(dòng)程序
CMD ["python", "app.py"]

當(dāng)前我的項(xiàng)目的Dockerfile是這樣的

# 使用官方的 Python 3.9 slim 鏡像
FROM python:3.9-slim

# 設(shè)置工作目錄
WORKDIR /app

# 將當(dāng)前目錄的內(nèi)容復(fù)制到容器中
COPY asr_http_server.py /app/
COPY trans_utils.py /app/
COPY requirements.txt /app/

# 更新包管理器并安裝必要的系統(tǒng)依賴(lài)
RUN apt-get update && apt-get install -y \
    ffmpeg \
    libsndfile1 \
    build-essential \
    curl \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 安裝 Python 依賴(lài)
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/


# 暴露 Flask 服務(wù)的端口
EXPOSE 7869

# 設(shè)置啟動(dòng)命令
CMD ["python", "asr_http_server.py"]

五、構(gòu)建 Docker 鏡像

docker build -t my-python-app .

構(gòu)建過(guò)程截圖

六、運(yùn)行容器并訪問(wèn)服務(wù)

docker run -d -p 5000:5000 my-python-app

若 app.py 使用 Flask,可在 127.0.0.1:5000 訪問(wèn)服務(wù)。

七、遇到的問(wèn)題與解決

這里記錄在構(gòu)建過(guò)程中遇到的坑,比如:

  • pip 安裝失敗(網(wǎng)絡(luò)問(wèn)題 / 缺少 build 工具)
  • 鏡像太大(優(yōu)化建議:alpine / 多階段構(gòu)建)
  • 時(shí)區(qū)問(wèn)題
  • 文件沒(méi)復(fù)制進(jìn)去 / 編碼問(wèn)題

八、總結(jié)

本文從零開(kāi)始,介紹了如何將 Python 項(xiàng)目打包成 Docker 鏡像,并記錄了構(gòu)建過(guò)程中的關(guān)鍵步驟與注意事項(xiàng)。希望能幫助你快速掌握 Python 項(xiàng)目的容器化部署思路。

以上就是將Python項(xiàng)目打包成Docker鏡像的全過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于Python項(xiàng)目打包Docker鏡像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

陵川县| 崇礼县| 富源县| 八宿县| 拉孜县| 遵义市| 肥乡县| 新野县| 周至县| 梨树县| 辉县市| 蓬溪县| 抚宁县| 通化市| 罗甸县| 新龙县| 易门县| 洞口县| 北川| 铅山县| 清镇市| 石泉县| 阳原县| 葫芦岛市| 成都市| 错那县| 德州市| 彝良县| 宜兴市| 望谟县| 南充市| 西丰县| 新昌县| 霸州市| 阿城市| 文成县| 湾仔区| 富平县| 金昌市| 绥芬河市| 双流县|