docker+mysql+flask+redis+vue3+uwsgi+docker部署

这篇具有很好参考价值的文章主要介绍了docker+mysql+flask+redis+vue3+uwsgi+docker部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先拉取mysql的镜像,这里用的mysql5.7.6

docker pull mysql:5.7.6

镜像拉取完成后启动:

docker run --name my-mysql -d -p 3306:3306 -v /usr/local/my-mysql/conf:/etc/mysql/conf.d -v /usr/local/my-mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7.6

利用dockerfile构建python3.9.11+uwsgi+nginx

FROM python:3.9.11

# 为镜像添加标签
LABEL version="v1" description="Docker deploy Flask" by="guochunbiao"
RUN mkdir /opt/flask_app
COPY ./bask_flask /opt/flask_app/bask_flask
COPY ./dist /opt/flask_app/dist
COPY ./site-pages /usr/local/lib/python3.9/site-packages
COPY ./nginx.conf /etc/nginx/nginx.conf
# 配置工作目录
WORKDIR /opt/flask_app

# 在镜像容器中执行命令
RUN pip install Flask && pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple/
#RUN pip install Flask && pip install -r request.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

#安装nginx
apt-get update
apt-get install nginx
apt-get install vim

构建:

docker build -t mydemo .

flask配置:

#基本项目创建
pip freeze > requirements.txt

安装:pip install -r requirements.txt

#安装flask-sqlalchey flask-migrate mysql数据库
pip install flask-sqlalchemy flask-migrate
#安装 flask-cors解决跨域访问
pip install flask-cors

数据库迁移
      创建迁移数据库 flask db init
      生成迁移脚本 flask db migrate -m "add user tables"
      将迁移脚本应用到数据库中 flask db upgrade 这个执行前确保,alembic_version的标号是最新的,不是手动更新在migrations->versions目录下
      将迁移脚本回滚 flask db downgrade

celery:

启动redis celery -A auto.celery worker -l info -P eventlet

微信支付python的库

pip3.9 install wechatpayv3==1.2.35 -i https://pypi.tuna.tsinghua.edu.cn/simple/

--link redis:redis-server flask容器就可以读取redis容器redis服务了:

docker pull redis:5.0.3

docker run --name redis -d redis:5.0.3 redis-server --appendonly yes

说明:

  1. 使用Docker运行一个名为"redis"的容器。
  2. 使用"redis:5.0.3"这个Docker镜像来创建这个容器。这个镜像是Redis数据库的一个版本。
  3. "-d"参数表示容器将在"detached"模式下运行,也就是说这个容器将在后台运行。
  4. "redis-server --appendonly yes"是传递给容器的命令,它将启动一个Redis服务器并开启append-only模式。这个模式会把所有的修改操作都记录下来,以便在数据库重启后可以通过这些记录恢复数据。
docker run --name flask -p 5000:5000 -p 3000:3000  --link redis:redis-server -itd auto_flask_nginx_v1.0:v1.0

说明:

  1. 使用 Docker 运行一个名为 "flask" 的容器。
  2. 使用 "auto_flask_nginx_v1.0:v1.0" 这个 Docker 镜像来创建这个容器。
  3. "-p 5000:5000" 和 "-p 3000:3000" 参数将容器内的端口 5000 和 3000 分别映射到主机的端口 5000 和 3000,这样你就可以通过主机的这两个端口来访问容器内的服务了。
  4. "--link redis:redis-server" 参数将链接名为 "redis" 的容器到 "flask" 容器,并在 "flask" 容器中用 "redis-server" 这个名字来引用 "redis" 容器。这样,"flask" 容器就可以通过 "redis-server" 这个名字来访问 "redis" 容器提供的服务了。
  5. "-itd" 参数表示容器将在 "detached" 模式下运行,并以交互模式打开一个伪终端。
# 获取access_token用来获取微信用户openid
def secret_token(code, user):
    redis_conn = redis.Redis(host='redis-server', port=6379)
    is_key = redis_conn.hget('{}_zc_token'.format(user), 'wx_token')
    if is_key:
        return is_key
    else:
        url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code".format(
            APP_ID,
            APP_SECRET, code)
        response_data = requests.get(url)
        eval_resp = eval(response_data.content)
        redis_conn.hset('{}_zc_token'.format(eval_resp.get('openid')), 'wx_token', response_data.content)
        redis_conn.expire('{}_zc_token'.format(eval_resp.get('openid')), 7100)
        return response_data.content

参考连接:

http://hk.javashuo.com/article/p-kgdqsqip-bv.html

uwsgi.ini配置:

[uwsgi]
#项目目录
chdir=/opt/flask_app
#指定项目的应用,固定写法,承接上面的项目目录
module=auto:app
wsgi-file=/opt/flask_app/auto.py
callable=app
#sock文件存放目录,方便nginx进行sock连接交互
socket=/opt/flask_app/uwsgi_log/uwsgi.sock
#并发进程
workers=5
#进程id存放文件
pidfile=/opt/flask_app/uwsgi_log/uwsgi.pid
#启动的ip及端口
http=0.0.0.0:5000
# 对应app.py文件中Flask对象对应的变量名
callable=auto
#静态文件映射,第一个等于代表Django里面的别名,第二个等于后面是Django里面的真实路径
#static-map=/static=/opt/AutomationPlatform/frontend/static/
#启动的用户和组
uid=root
gid=root
#启用主进程
master=true
#自动移除unixSocket和pid文件当服务停止的时候
vacuum=true
#序列化接受的内容,如果可能的话
thunder-lock=true
#启用线程
enable-threads=true
#设置自中断时间
harakiri=36000
#设置缓存
post-buffering=1024
#日志存放目录,方便拍错
daemonize=/opt/flask_app/uwsgi_log/uwsgi.log

启动:

uwsgi --ini uwsgi.ini

停止:

uwsgi --stop uwsgi_log/uwsgi.pid

部署Vue3到Nginx和设置请求转发需要以下步骤:

  1. 构建Vue3项目:在项目目录下运行npm run build命令。这会生成一个dist目录,里面包含构建后的静态文件。

  2. 部署到Nginx:将dist目录下的所有文件复制到Nginx的web目录下,例如/usr/share/nginx/html/

  3. 配置Nginx转发请求:在Nginx的配置文件中添加一个新的server块。例如:

    server {
      listen 80;
      server_name yourdomain.com;
      location / {
        root /usr/share/nginx/html; # Vue3项目在Nginx的路径
        index index.html;
        try_files $uri $uri/ /index.html; # 用于支持Vue的history模式
      }
      location /api {
        proxy_pass http://backend:3000; # 假设后端服务运行在3000端口
      }
    }
    
  4. /api路径下的所有请求都会被转发到后端服务。

  5. 重启Nginx:最后,你需要重启Nginx以应用新的配置。在Linux上,你可以使用sudo systemctl restart nginx命令。文章来源地址https://www.toymoban.com/news/detail-730079.html

到了这里,关于docker+mysql+flask+redis+vue3+uwsgi+docker部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python Flask web项目uwsgi + nginx部署

    python Flask web项目uwsgi + nginx部署

    略 2.1安装vertualenv 2.2创建虚拟环境 创建保存环境的目录: 创建虚拟环境: 查看虚拟环境: 2.3激活虚拟环境 activiate是激活虚拟环境的命令脚本,在虚拟环境的bin目录下 执行activate激活环境 3.1安装uwsgi 激活虚拟环境,安装uwsgi 3.2基于uwsgi运行flask项目 3.2.1命令的方式 3.2.2配置文

    2024年02月10日
    浏览(14)
  • 企业部署,springboot+vue+vue,Linux上部署mysql与redis,docker中部署nginx,jenkins。完整详细。

    企业部署,springboot+vue+vue,Linux上部署mysql与redis,docker中部署nginx,jenkins。完整详细。

    涉及:Linux服务器,docker,Jenkins,nginx,springoot,vue,mysql,redis,git, docker生成容器类型: MySql , Redis ,Jenkins,Nginx,项目存放的容器。 注: !!!!!!!!!!!数据库不要存放在Docker中,而且存放会在使用时会有问题。!!!!!!!!!! 存放 mysql 时、发现其账

    2024年02月07日
    浏览(9)
  • 【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

    【Vue3-Flask-BS架构Web应用】实践笔记1-使用一个bat脚本自动化完整部署环境

    近年来,Web开发已经成为计算机科学领域中最热门和多产的领域之一。Python和Vue.js是两个备受欢迎的工具,用于构建现代Web应用程序。在本教程中,我们将探索如何使用这两个工具来创建一个完整的Web项目。我们将完成从安装Python和Vue.js到项目部署的整个过程。 首先,确保你

    2024年02月07日
    浏览(35)
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

    [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

    可以到 https://hub.docker.com/ 去搜索node镜像 , 然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm,以及对应的依赖,启动node目录下对应的项目,然后通过浏

    2024年02月06日
    浏览(12)
  • docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

    docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

    一、部署MySQL 搜索mysql镜像 拉取mysql镜像 创建容器,设置端口映射、目录映射 参数说明: -p 3307:3306 :将容器的 3306 端口映射到宿主机的 3307 端口。 -v $PWD/conf:/etc/mysql/conf.d :将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录 -v $PWD/logs:/logs :将主机当前目

    2024年02月03日
    浏览(21)
  • 安装Docker&使用Docker安装部署MySQL和Redis

    安装Docker&使用Docker安装部署MySQL和Redis

    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 如果这一步报错,说尝试其他镜像的话,执行下面步骤

    2024年02月07日
    浏览(12)
  • docker快速部署Redis、MySQL、Nginx

    拉取镜像 拷贝一份redis.conf文件复制到/home/ubuntu/redis文件夹下,修改redis.conf配置文件 创建redis容器 MySQL 8.0.30 拉取镜像 创建容器 docker安装完成mysql8,如果使用sqlyog或者navite连接,需要修改密码加密规则,因为低版本客户端工具不支持mysql8最新的加密规则。如果使用客户端连接

    2024年02月03日
    浏览(7)
  • Docker 部署 Spring Boot 项目(含 MySQL + Redis )

    Docker 部署 Spring Boot 项目(含 MySQL + Redis )

    注意事项:如果需要将 Spring Boot 项目的日志文件挂载到本地,则在打包前需要先在 yml 进行如下配置: 这里的 info 指的是日志等级,可以根据需要进行修改,日志等级主要有以下几种: trace :最低的日志级别,用于记录非常详细的信息,通常仅在诊断问题时使用。 debug :用

    2024年01月21日
    浏览(10)
  • 手把手教你用 Docker 部署 Vue3 项目

    手把手教你用 Docker 部署 Vue3 项目

    用 docker 可以帮我们快速部署前端项目,本文介绍了如何用 docker 快速部署 vue3 项目。请准备好一台云服务器并安装好 docker,然后开始阅读本教程。 执行 npm run build 打包后项目目录中会多出一个 dist 文件夹 利用 docker 拉取 nginx 镜像 在服务器中创建工作目录,这里我放在 /ho

    2024年02月05日
    浏览(16)
  • 安装Docker&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio

    安装Docker&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio

    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 如果这一步报错,说尝试其他镜像的话,执行下面步骤

    2024年02月05日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包