部署python到docker 再把docker部署到服务器上
部署 Python 项目到 Docker 并将 Docker 容器部署到服务器通常需要执行以下步骤:
- 准备 Dockerfile: 在项目根目录创建一个名为 Dockerfile 的文件,该文件包含构建 Docker 镜像的指令。
# 设置基础镜像
FROM python:3.8
# 设置工作目录
WORKDIR /app
# 复制项目文件到工作目录
COPY . /app
# 安装项目依赖
RUN pip install -r requirements.txt
# 暴露应用端口
EXPOSE 5000
# 启动应用
CMD ["python", "app.py"]
项目生产requirements.txt的命令如下
pip freeze > requirements.txt
如果 requirements.txt 文件中包含类似 @ file:///Users/ktietz/demo/mc3/conda-bld/wtforms_1629354749392/work 的地址,通常表示该依赖项是从本地文件系统安装的。这可能是因为在项目中使用了本地修改过的包,或者是在开发过程中使用了本地的包进行测试。
这样的地址是 pip 安装时的一种来源格式,用于指定从本地文件系统或其他来源安装包。在正常的发布或分享代码时,你可能会希望移除这些本地文件系统的依赖项。
你可以手动编辑 requirements.txt 文件,删除包含类似 @ file:///… 的行,然后使用其他远程仓库或 PyPI 上的版本。在编辑文件后,你可以使用以下命令来重新安装依赖项:
我项目中的Dockerfile如下:
FROM python:3.10.13
WORKDIR /app
COPY . /app
# RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
# 使用国内镜像
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
# 下面是为了安装 opencv的依赖
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6 -y
EXPOSE 5100
CMD ["python", "run.py"]
pip install -r requirements.txt
确保在编辑文件之前备份 requirements.txt,以免不小心删除了某些必要的依赖项。
- 构建 Docker 镜像: 在项目根目录执行以下命令构建 Docker 镜像。
docker build -t your_image_name:latest .
注意后面有个点
3. 测试 Docker 镜像: 可以在本地运行一个 Docker 容器来测试构建的镜像。
docker login # 登录到 Docker 仓库
docker tag your_image_name:latest your_docker_hub_username/your_image_name:latest
docker push your_docker_hub_username/your_image_name:latest
- 用宝塔发布到线上
在软件市场搜索 docker
获取镜像
创建容器
注意要点+号 把端口映射添加进去
在IP地址池中添加当前服务器的公网ip,这样就可以通过公网地址来访问