Flask+Mysql项目docker-compose部署(Pythondocker-compose详细步骤)
一、前言
-
环境:
Linux、docker、docker-compose、python(Flask)、Mysql
-
简介:
简单使用Flask框架写的查询Mysql数据接口,使用docker部署,shell脚本启动
-
优势:
采用docker方式部署更加便于维护,更加简单快捷,简单来说:好用
二、项目样式
文件:

Docker运行
flaskweb+mysql

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(host='192.168.2.136', # 主机名port=13306, # 端口号,MySQL默认为3306user='root', # 用户名password='Dl123456', # 密码database='face', # 数据库名称)# 创建游标对象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(host='0.0.0.0',port='8085', debug=True)
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
Flask==3.0.0
PyMySQL==1.0.2
docker-compose.yml:
version: '3.1'
services:mysql:image: mysql:5.7container_name: mysqlrestart: alwaysnetwork_mode: 'bridge'ports:- "13306:3306"volumes:- /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: 'bridge'ports:- "8085:8085"
startFlaskweb.sh
#!/bin/bash
flaskcontainerId=`docker ps -a | grep flaskweb | awk '{print $1}'`
flaskcontainerName=`docker ps -a | grep flaskweb | awk '{print $2}'`
mysqlcontainerId=`docker ps -a | grep mysql:5.7 | awk '{print $1}'`
mysqlcontainerName=`docker 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} --SUCCESS"echo "delete ${mysqlcontainerName} --SUCCESS"
fidocker-compose up -d
五、总结
简单搭建了一个flask接口项目,使用docker进行部署,用来练习docker-compose部署与docker打包,docker-compose.yml文件格式很严格,每个:后面都要跟一个空格,Dockerfile文件大致是引入程序运行环境,比如python、openjdk等,需要copy那些文件进入容器里面,确定工作路径,需要运行那些命令作为程序启动前的操作,最后CMD运行那个命令来启动项目,你可以写个shell脚本copy进入容器里面用来启动项目。
相关文章:
Flask+Mysql项目docker-compose部署(Pythondocker-compose详细步骤)
一、前言 环境: Linux、docker、docker-compose、python(Flask)、Mysql 简介: 简单使用Flask框架写的查询Mysql数据接口,使用docker部署,shell脚本启动 优势: 采用docker方式部署更加便于维护,更加简单快…...
DDOS攻击简介——什么是DDOS
DDoS是什么? DDoS是分布式拒绝服务攻击(Distributed denial of service attack)的简称。 分布式拒绝服务器攻击(以下均称作DDoS)是一种可以使很多计算机(或服务器)在同一时间遭受攻击,使被攻击的目标无法正常使用的一种网络攻击方式。DDoS攻击在互联网上已经出现过…...
龙蜥开源操作系统能解决CentOS 停服造成的空缺吗?
龙蜥开源操作系统能解决CentOS 停服造成的空缺吗? 本文图片来源于龙蜥,仅做介绍时引用用途,版权归属龙蜥和相关设计人员。 一、《国产服务器操作系统发展报告(2023)》称操作系统已步入 2.0 时代,服务器操作…...
『Linux升级路』基础开发工具——gdb篇
🔥博客主页:小王又困了 📚系列专栏:Linux 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、背景知识介绍 二、gdb指令介绍 一、背景知识介绍 在软件开发中,…...
边缘计算云边端全览—边缘计算系统设计与实践【文末送书-10】
文章目录 一.边缘计算1.1边缘计算的典型应用 二.边缘计算 VS 云计算三.边缘计算系统设计与实践【文末送书-10】3.1 粉丝福利:文末推荐与福利免费包邮送书! 一.边缘计算 边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心…...
使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错的问题
目录 1、问题说明 2、问题分析思路 3、问题分析过程 3.1、使用Dependency Walker打开软件主程序,查看库与库的依赖关系,找出出问题的库 3.2、使用PE工具查看dll库的时间戳 3.3、解决办法 4、最后 VC常用功能开发汇总(专栏文章列表&…...
Servlet技术之Cookie对象与HttpSession对象
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 Servlet技术之Cookie对象与HttpSession对象 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前…...
winlogbeat收集Windows事件日志传给ELK
服务器部署winlogbeat后,修改winlogbeat.yml: ###################### Winlogbeat Configuration Example ######################### This file is an example configuration file highlighting only the most common # options. The winlogbeat.reference.yml fi…...
Gin框架之使用 go-ini 加载.ini 配置文件
首先,联想一个问题,我们在部署服务时,通常为了方便,对于需要迭代更新的代码进行修改,但是比对shell,可以搞一个变量将需要修改的,以及修改起来变动处多的,写在变量内,到时候如果需要变更,可以直接变更变量即可; 那么,golang有没有什么方式可以将需要变的东西保存起…...
SpringMVC:整合 SSM 上篇
文章目录 SpringMVC - 03整合 SSM 上篇一、准备工作二、MyBatis 层1. dao 层2. service 层 三、Spring 层四、SpringMVC 层五、执行六、说明 SpringMVC - 03 整合 SSM 上篇 用到的环境: IDEA 2019(JDK 1.8)MySQL 8.0.31Tomcat 8.5.85Maven…...
BFS解决多源最短路相关leetcode算法题
文章目录 1.01矩阵2.飞地的数量3.地图中的最高点4.地图分析 1.01矩阵 01矩阵 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0}; public:vector<vector<int>> updateMatrix(vector<vector<int>>& mat) {//正难则反,找0…...
ARM GIC(四) gicv3架构基础
GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下: 使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core 将cpu interface独立出来,用户可以将其设计在core…...
Kafka日志
位置 server.properties配置文件中通过log.dir指定日志存储目录 log.dir/{topic}-{partition} 核心文件 .log 存储消息的日志文件,固定大小为1G,写满后会新增一个文件,文件名表示当前日志文件记录的第一条消息的偏移量。 .index 以偏移…...
gitattributes配置文件的作用
0 Preface/Foreword 0.1 基本概念 Git版本管控工具功能强大,在使用过程中,在多人合作的项目开发过程中,经常会遇到提交代码时出现的warning提醒,尤其是换行符。 Linux/Unix/Mac OS操作系统的换行符使用LF符号(\n&am…...
【华为鸿蒙系统学习】- 如何利用鸿蒙系统进行App项目开发|自学篇
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工程…...
基于SpringBoot的足球社区管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的足球社区管理系统,java…...
ubuntu22.04上安装charles-proxy
在 Ubuntu 22.04 上安装 .tar.gz 格式的 Charles Proxy (charles-proxy-4.6.5_amd64.tar.gz) 需要解压缩文件并运行其中的安装脚本或可执行文件。以下是具体步骤: 1. 下载文件 假设你已经从 Charles Proxy 官网下载了 charles-proxy-4.6.5_amd64.tar.gz 文件。 2…...
(2021|CVPR,XMC-GAN,对比学习,注意力自调制)用于文本到图像生成的跨模态对比学习
Cross-Modal Contrastive Learning for Text-to-Image Generation 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 相关工作 3. 基础 4. 方法 4.1 用于文本到图像…...
【Linux基本命令】
文章目录 一. Linux基本命令第三回二. 结束语 一. Linux基本命令第三回 cal指令,命令格式:cal 【参数】【月份】【年份】 功能,用于查看日历等时间信息,如只有一个参数,则表示年份,有两个参数则表示月份和…...
Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计
随着物联网和云计算技术的飞速发展.物联网终端的数量越来越多,终端的连接方式也更趋多样化,比如 Wi-Fi蓝牙和 ZigBee 等。现有的物联网网关大多仅支持一种或者几种终端的接人方式。无法满足终端异构性的需求。同时,现有的物联网网关与终端设备…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
