Docker-compose部署Python應用


 

目錄結構

/app  # python應用文件夾
  api.py  # API入口腳本文件
/docker  # docker文件夾
  docker-compose.yml  # docker compose腳本文件
  requirements.txt  # python第三方依賴
  run.sh  # 容器啟動執行腳本文件

api.py

from flask import Flask, request

# 創建一個服務,賦值給APP
app = Flask(__name__)


# 指定接口訪問的路徑,支持什么請求方式get,post
@app.route('/HelloWorld', methods=['post', 'get'])
# 請求后直接拼接入參方式
def get_ss():
    # 使用request.args.get方式獲取拼接的入參數據
    name = request.args.get('name')

    # 輸出結果
    return 'Hello World! ' + name


app.run(host='0.0.0.0', port=8880, debug=True)
# 這個host:windows就一個網卡,可以不寫,而liux有多個網卡,寫成'0.0.0.0'可以接受任意網卡信息

docker-compose.yml

version: "3"  # docker-compose版本
services:
  docker-python-demo:  # docker-compose編排名稱,一般同微服務名稱,注意不要與其他服務重名
    image: "python:3.7.0b4"  # docker鏡像名及版本
    hostname: docker-python-demo  # docker容器主機名
    container_name: docker-python-demo  # docker容器名
    volumes:  # 掛載目錄
      - ../app:/app  # 項目相關
      - ../docker:/docker  # docker相關
    ports:  # 端口映射
      - "8880:8880"
    environment:  # 配置環境變量
      - TZ=Asia/Shanghai  # 設置時區
    command: bash /docker/run.sh  # 設置啟動命令
    network_mode: bridge  # 網絡模式:host、bridge、none等,一般bridge
    restart: unless-stopped  # 自動啟動:unless-stopped、always等,unless-stopped為非正常停止則自動啟動
#    external_links: # 外鏈其他服務,此處名稱為docker-compose編排名
#      - mongodb

requirements.txt

flask
requests

run.sh

#!/bin/bash

# 使用阿里雲源安裝必須組件
pip install -i https://mirrors.aliyun.com/pypi/simple/ -r /docker/requirements.txt

# 運行API入口腳本
python /app/api.py

補充:

如果使用dockerfile進行環境定義,而以上配置沒有dockerfile文件,也可以使用dockerfile文件進行構建,在docker目錄下添加dockerfile文件:

# 基於鏡像基礎
FROM python:3.7.04b
# 創建代碼文件夾工作目錄 /code 
RUN mkdir /code 
# 復制當前代碼文件到容器中 /code 
COPY . /code 
# 安裝所需的包
RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
# 指定cmd的工作目錄 /code
WORKDIR /code
CMD ["python", "/app/api.py"]

docker-compose.yml修改為如下(簡單示例):

version: '3'
services:
  docker-python-demo:
    build: .
    ports:
     - "8880:8880"

# redis: # image: "redis:alpine"

運行

在docker目錄執行下面命令,如需后台運行,加參數 -d:

docker-compose up

其他常用命令:

在后台運行服務:
$ docker-compose up -d

查看當前運行服務:
$ docker-compose ps

查看web服務在使用的環境變量:
$ docker-compose run web env

停止服務:
$ docker-compose stop

停止並刪除容器,網絡,允許和卷
$ docker-compose down --volumes

驗證服務

在瀏覽器中訪問:

http://127.0.0.1:8880/HelloWorld?name=2021

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM