昨天發了一個SayHello FastAPI版本,今天部署上本身的服務器了
體驗地址: http://49.232.203.244:9001/message.htmlhtml
前置條件:如下在centos7.5 雲服務器實驗經過前端
yum -y install git # 安裝git curl -sSL https://get.daocloud.io/docker | sh # 安裝docker
git clone https://gitee.com/zy7y/sayhellopython
git clone https://github.com/zy7y/sayhellonginx
上面兩個命令選一個執行就可了git
cd sayhello
github
在sayhello目錄下新建以下Dockerfiledocker
FROM python:3.7 COPY . /app WORKDIR ./app RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ EXPOSE 80 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
簡單說下上面內容作了什麼事情,不必定正確加了些我的理解shell
FROM python:3.7 # 拉取基礎鏡像python3.7,本機已有該鏡像就會使用該鏡像,沒有就去遠端倉庫拉取,速度慢就須要換下源地址,百度便可(這裏應該就是拉下鏡像後弄成了個容器) COPY . /app # 將當前所在目錄下全部文件 複製到 容器裏面 /app 目錄下 WORKDIR ./app # 指定工做目錄,個人理解是後面執行的命令 都至關於在這個目錄下執行了,根目錄的形式吧 RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 這步是在容器裏面執行 pip 安裝依賴 EXPOSE 80 # 將容器中80 端口開放 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"] # 容器運行時將執行 uvicorn main:app --host 0.0.0.0 --port 80 啓動服務
docker build -t sayhello .
會自動執行dockerfile裏面的CMD命令後端
docker run -d --name sayhello-fastapi -p 8000:80 sayhello
IP:8000/message
,獲得以下頁面先確認message.html中的
baseURL
是否是後端服務的IP地址(127.0.0.1 不行)centos
cd sayhello/static/
FROM nginx:1.15.2-alpine COPY . /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
docker build -t sayhello-front .
docker run -d --name sayhello-front-9000 -p 9001:80 sayhello-front
感謝資料提供者/做者