docker+flask+爬虫+ngin项目部署

type
status
date
slug
summary
tags
category
icon
password

项目地址:


  1. git clone 拉取项目
    1. git clone git@github.com:Bvbrutal/51job-reverse-crawler.git
  1. 利用ftp或者其他方法上传项目文件
    1. notion image
  1. 在项目文件夹下运行docker利用dockerfile构建镜像与容器
    1. dockerfile:
      docker build -t my-python-app . && docker run -d -p 8080:80 my-python-app
  1. 建立站点,如果有域名可以添加解析,没有则跳过反向代理步骤只能通过IP+端口访问
    1. notion image
  1. 配置反向代理
    1. notion image
 

问题描述:

  1. 已经开放端口,但是无法访问
    1. flask默认127.0.0.1不对外开放,需要0.0.0.0来监听所有ip
      所以host 必须设置为 0.0.0.0,表示监听所有的 IP 地址。如果 host 使用 127.0.0.1,在容器外将无法访问服务。
      🎾
      0.0.0.0127.0.0.1区别
      这里假设我docker服务器的地址为 212.26.67.78,docker服务器和docker容器的端口映射为 9879:9879
      官方教程给的示例代码如下:
      from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Hello, World!</p>"
      假设我文件名为hello.py
      要启动flask,需要在命令行输入如下命令(记得先CD到对应目录下):
      $ export FLASK_APP=hello $ flask run --port 9879
      那么按理说,我在本地浏览器输入 212.26.67.78:9879 ,应该能看到一个显示“Hello, World!”的页面:
      notion image
      但是我输入 212.26.67.78:9879 后却显示502错误。
      解决方法1:
      把代码改成
      from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Hello, World!</p>" app.run(host='0.0.0.0',port=9879)
      解决方法2:
      把命令行的输入替换成:
      flask run --port 9879 --host 0.0.0.0
软链接实现docker装D盘mysql数据库安装(详细)