将Python应用程序反代到网站上,可以使用Docker容器来实现,步骤如下:
- 首先在宝塔面版里安装docker管理器
- 把你写好的Python应用程序文件上传到网站目录下 (例 test.py 上传到网站目录下)
- 编写Dockerfile:在Python应用程序所在的目录下,创建一个名为Dockerfile的文件,内容如下:
#指定了所需的基础镜像,这里使用的是Python 3.9.5的“slim”版本,即只包含必要的组件和依赖项,最小化镜像大小。FROM python:3.9.5-slim-buster#将本地当前目录中的所有文件拷贝到镜像中的/app目录下。COPY . /app#将当前工作目录切换到/app。WORKDIR /app#安装指定依赖项,这里的依赖项列表存储在文件requirements.txt中 一行一条 格式例aiohttp==3.8.3,并且使用清华大学的镜像源进行安装。(可以用pip freeze命令查看你本地已安装依赖项版本)RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple#声明了容器将要映射的端口号,这里是8000EXPOSE 8000#定义了容器启动时执行的默认命令,即运行test.py文件CMD ["python","test.py"]
#指定了所需的基础镜像,这里使用的是Python 3.9.5的“slim”版本,即只包含必要的组件和依赖项,最小化镜像大小。 FROM python:3.9.5-slim-buster #将本地当前目录中的所有文件拷贝到镜像中的/app目录下。 COPY . /app #将当前工作目录切换到/app。 WORKDIR /app #安装指定依赖项,这里的依赖项列表存储在文件requirements.txt中 一行一条 格式例aiohttp==3.8.3,并且使用清华大学的镜像源进行安装。(可以用pip freeze命令查看你本地已安装依赖项版本) RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #声明了容器将要映射的端口号,这里是8000 EXPOSE 8000 #定义了容器启动时执行的默认命令,即运行test.py文件 CMD ["python","test.py"]
#指定了所需的基础镜像,这里使用的是Python 3.9.5的“slim”版本,即只包含必要的组件和依赖项,最小化镜像大小。 FROM python:3.9.5-slim-buster #将本地当前目录中的所有文件拷贝到镜像中的/app目录下。 COPY . /app #将当前工作目录切换到/app。 WORKDIR /app #安装指定依赖项,这里的依赖项列表存储在文件requirements.txt中 一行一条 格式例aiohttp==3.8.3,并且使用清华大学的镜像源进行安装。(可以用pip freeze命令查看你本地已安装依赖项版本) RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #声明了容器将要映射的端口号,这里是8000 EXPOSE 8000 #定义了容器启动时执行的默认命令,即运行test.py文件 CMD ["python","test.py"]
- 在Python应用程序所在的目录下,创建install.sh文件,内容如下:
#在当前目录下使用名为Dockerfile的文件构建一个名为my-python-app的Docker镜像。docker build --file Dockerfile --tag my-python-app .#停止并删除名为my-python-app的容器,前提是该容器已经在运行。docker stop my-python-app && docker rmmy-python-app#创建一个名为my-python-app的容器并运行它。该容器将使用之前创建的my-python-app镜像,并绑定容器的8000端口到主机的8333端口。容器将在后台运行,并且如果容器停止,它将自动重启(根据--restart=always选项)。docker run -d --restart=always -p 8333:8000 --name my-python-app my-python-app
#在当前目录下使用名为Dockerfile的文件构建一个名为my-python-app的Docker镜像。 docker build --file Dockerfile --tag my-python-app . #停止并删除名为my-python-app的容器,前提是该容器已经在运行。 docker stop my-python-app && docker rmmy-python-app #创建一个名为my-python-app的容器并运行它。该容器将使用之前创建的my-python-app镜像,并绑定容器的8000端口到主机的8333端口。容器将在后台运行,并且如果容器停止,它将自动重启(根据--restart=always选项)。 docker run -d --restart=always -p 8333:8000 --name my-python-app my-python-app
#在当前目录下使用名为Dockerfile的文件构建一个名为my-python-app的Docker镜像。 docker build --file Dockerfile --tag my-python-app . #停止并删除名为my-python-app的容器,前提是该容器已经在运行。 docker stop my-python-app && docker rmmy-python-app #创建一个名为my-python-app的容器并运行它。该容器将使用之前创建的my-python-app镜像,并绑定容器的8000端口到主机的8333端口。容器将在后台运行,并且如果容器停止,它将自动重启(根据--restart=always选项)。 docker run -d --restart=always -p 8333:8000 --name my-python-app my-python-app
- 在Python应用程序所在的目录下 右击鼠标-终端-输入这个代码安装chmod +x install.sh && ./install.sh
- 安装成功 在网站配置里反代127.0.0.1:8333保存 然后用你的域名就可以访问了
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后发表评论
注册
社交帐号登录