1. 編寫基礎(chǔ)應(yīng)用
創(chuàng)建名為 helloworld 的新目錄,并轉(zhuǎn)到此目錄中:
mkdir hello-cloud-developcd hello-cloud-develop
創(chuàng)建名為 main.py 的文件,并將以下代碼粘貼到其中:
import osfrom flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!' if __name__ == "__main__": app.run(debug=True, host='0.0.0.0', port=8080)
以上代碼會(huì)創(chuàng)建一個(gè)基本的 Web 服務(wù)器,并監(jiān)聽 8080 端口。
2. 將應(yīng)用容器化
在項(xiàng)目根目錄下,創(chuàng)建一個(gè)名為 Dockerfile 的文件,內(nèi)容如下:
# 使用官方 Python 輕量級(jí)鏡像# https://hub.docker.com/_/pythonFROM python:3.8-slim# 將本地代碼拷貝到容器內(nèi)ENV APP_HOME /appWORKDIR $APP_HOMECOPY . ./# 安裝依賴RUN pip install Flask gunicorn# 啟動(dòng) Web 服務(wù)# 這里我們使用了 gunicorn 作為 Server,1 個(gè) worker 和 8 個(gè)線程# 如果您的容器實(shí)例擁有多個(gè) CPU 核心,我們推薦您把線程數(shù)設(shè)置為與 CPU 核心數(shù)一致CMD exec gunicorn --bind :8080 --workers 1 --threads 8 --timeout 0 main:app
添加一個(gè) .dockerignore 文件,以從容器映像中排除文件:
DockerfileREADME.md*.pyc*.pyo*.pyd__pycache__.pytest_cache
3.部署到 CloudBase 云托管
你可以選擇任何云服務(wù)商的云開發(fā)服務(wù),這里我選擇了騰訊云的CloudBase云托管服務(wù)。
在 云托管控制臺(tái) 的服務(wù)列表頁面,選擇對(duì)應(yīng)的環(huán)境,單擊【新建服務(wù)】:
https://console.cloud.tencent.com/tcb/service
填寫新建服務(wù)所需的所有信息默認(rèn)使用系統(tǒng)推薦的配置即可。
更多Python學(xué)習(xí)資料可以私信關(guān)鍵字【資料】領(lǐng)取
單擊【提交】,如果部署成功,便可以看到如下彈框:
更多Python學(xué)習(xí)資料可以私信關(guān)鍵字【資料】領(lǐng)取
單擊【新建版本】可立刻開始新建版本并部署,在這里我們選擇本地代碼,將剛剛寫好的文件夾打包為zip文件并上傳,端口改為 8080 ,流量策略改為 部署完成后自動(dòng)開啟100%流量 ,其他配置默認(rèn)即可:
更多Python學(xué)習(xí)資料可以私信關(guān)鍵字【資料】領(lǐng)取
當(dāng)然,你也可以選擇其他的拉取代碼方式,比如代碼庫或者Docker鏡像,按需選擇即可。點(diǎn)擊開始部署將代碼倉庫部署為線上服務(wù)。
狀態(tài)變成正常說明部署成功。
4.訪問網(wǎng)站
部署成功后就可以訪問網(wǎng)站了,進(jìn)入服務(wù)配置,找到公網(wǎng)域名:
更多Python學(xué)習(xí)資料可以私信關(guān)鍵字【資料】領(lǐng)取
這個(gè)公網(wǎng)域名就是我們部署網(wǎng)站的地址,訪問這個(gè)公網(wǎng)域名,出現(xiàn)下面頁面效果,說明部署成功:
更多Python學(xué)習(xí)資料可以私信關(guān)鍵字【資料】領(lǐng)取
恭喜!你已經(jīng)成功通過云開發(fā)部署一個(gè)網(wǎng)站了,準(zhǔn)確來講是云托管服務(wù)。這種部署方式實(shí)在非常舒服,無需自建服務(wù)器、成本降低、運(yùn)維省事。
那些簡單的個(gè)人網(wǎng)站、官方網(wǎng)站或者論壇,我認(rèn)為都可以用云托管的形式去部署,能夠大大節(jié)省投入成本,站長們可以嘗試一下。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。