邢台做网站哪家好,新媒体口碑营销案例,网页设计主页面,网站开发中都引用什么文献一、前言 环境#xff1a; Linux、docker、docker-compose、python(Flask)、Mysql 简介#xff1a; 简单使用Flask框架写的查询Mysql数据接口#xff0c;使用docker部署#xff0c;shell脚本启动 优势#xff1a; 采用docker方式部署更加便于维护#xff0c;更加简单快…一、前言 环境 Linux、docker、docker-compose、python(Flask)、Mysql 简介 简单使用Flask框架写的查询Mysql数据接口使用docker部署shell脚本启动 优势 采用docker方式部署更加便于维护更加简单快捷简单来说好用
二、项目样式
文件
Docker运行 flaskwebmysql
Mysql
接口样式
脚本启动
三、核心点
docker打包python项目build打包使用Dockerfile文件这里需要一个python模块requirements.txt文件用于pip安装模块。 使用docker build -t flaskmysql:v2.0.0进行打包 flaskweb requirements.txt docker-compose使用docker-compose进行打包使用docker-compose.yml文件,使用docker-compose up -d启动 四、代码
flaskMysql.py
from flask import Flask,jsonify
import pymysqlapp Flask(__name__)app.route(/)
def hello_world():conn pymysql.connect(host192.168.2.136, # 主机名port13306, # 端口号MySQL默认为3306userroot, # 用户名passwordDl123456, # 密码databaseface, # 数据库名称)# 创建游标对象cursor conn.cursor()# 执行 SQL 查询语句cursor.execute(SELECT * FROM base_customers)# 获取查询结果result cursor.fetchall()return jsonify(result)if __name__ __main__:app.config[JSON_AS_ASCII] Falseapp.run(host0.0.0.0,port8085, debugTrue)
Dockerfile
FROM python:3.9
WORKDIR /app/etc
COPY ./requirements.txt /app/etc
COPY ./flaskMysql.py /app/etc
RUN pip install --no-cache-dir -r /app/etc/requirements.txt
CMD [ python, ./flaskMysql.py ]requirements.txt
Flask3.0.0
PyMySQL1.0.2docker-compose.yml:
version: 3.1
services:mysql:image: mysql:5.7container_name: mysqlrestart: alwaysnetwork_mode: bridgeports:- 13306:3306volumes:- /opt/python_project/mysql/conf:/etc/mysql/conf- /opt/python_project/mysql/data:/var/lib/mysql- /opt/python_project/mysql/logs:/logsenvironment:MYSQL_ROOT_PASSWORD: Dl123456flaskweb:image: flaskmysql:v2.0.0container_name: flaskwebrestart: alwaysnetwork_mode: bridgeports:- 8085:8085 startFlaskweb.sh
#!/bin/bash
flaskcontainerIddocker ps -a | grep flaskweb | awk {print $1}
flaskcontainerNamedocker ps -a | grep flaskweb | awk {print $2}
mysqlcontainerIddocker ps -a | grep mysql:5.7 | awk {print $1}
mysqlcontainerNamedocker ps -a | grep mysql:5.7 | awk {print $2}if [[ $flaskcontainerId || $mysqlcontainerId ]];thendocker stop ${flaskcontainerId}docker stop ${mysqlcontainerId}docker rm ${flaskcontainerId}docker rm ${mysqlcontainerId}echo delete ${flaskcontainerName} --SUCCESSecho delete ${mysqlcontainerName} --SUCCESS
fidocker-compose up -d
五、总结
简单搭建了一个flask接口项目使用docker进行部署用来练习docker-compose部署与docker打包docker-compose.yml文件格式很严格每个:后面都要跟一个空格Dockerfile文件大致是引入程序运行环境比如python、openjdk等需要copy那些文件进入容器里面确定工作路径需要运行那些命令作为程序启动前的操作最后CMD运行那个命令来启动项目你可以写个shell脚本copy进入容器里面用来启动项目。