【Docker】本地项目打包并发布到线上

部署python到docker 再把docker部署到服务器上

部署 Python 项目到 Docker 并将 Docker 容器部署到服务器通常需要执行以下步骤:

  1. 准备 Dockerfile: 在项目根目录创建一个名为 Dockerfile 的文件,该文件包含构建 Docker 镜像的指令。
csharp 复制代码
# 设置基础镜像
FROM python:3.8

# 设置工作目录
WORKDIR /app

# 复制项目文件到工作目录
COPY . /app

# 安装项目依赖
RUN pip install -r requirements.txt

# 暴露应用端口
EXPOSE 5000

# 启动应用
CMD ["python", "app.py"]

项目生产requirements.txt的命令如下

csharp 复制代码
pip freeze > requirements.txt

如果 requirements.txt 文件中包含类似 @ file:///Users/ktietz/demo/mc3/conda-bld/wtforms_1629354749392/work 的地址,通常表示该依赖项是从本地文件系统安装的。这可能是因为在项目中使用了本地修改过的包,或者是在开发过程中使用了本地的包进行测试。

这样的地址是 pip 安装时的一种来源格式,用于指定从本地文件系统或其他来源安装包。在正常的发布或分享代码时,你可能会希望移除这些本地文件系统的依赖项。

你可以手动编辑 requirements.txt 文件,删除包含类似 @ file:///... 的行,然后使用其他远程仓库或 PyPI 上的版本。在编辑文件后,你可以使用以下命令来重新安装依赖项:

我项目中的Dockerfile如下:

csharp 复制代码
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"]
csharp 复制代码
pip install -r requirements.txt

确保在编辑文件之前备份 requirements.txt,以免不小心删除了某些必要的依赖项。

  1. 构建 Docker 镜像: 在项目根目录执行以下命令构建 Docker 镜像。
csharp 复制代码
docker build -t your_image_name:latest .

注意后面有个点

  1. 测试 Docker 镜像: 可以在本地运行一个 Docker 容器来测试构建的镜像。
csharp 复制代码
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
  1. 用宝塔发布到线上
    在软件市场搜索 docker

    获取镜像

    创建容器

    注意要点+号 把端口映射添加进去

在IP地址池中添加当前服务器的公网ip,这样就可以通过公网地址来访问

相关推荐
xingfujie12 小时前
运维实战攻略
运维
道清茗12 小时前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
北方的流星12 小时前
华三路由器NAT配置
运维·网络·华三
wj30558537813 小时前
Codex + Git 开发环境配置指南(WSL版)
linux·运维·git
星马梦缘13 小时前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu
2501_9272835814 小时前
荣联汇智助力天津艺虹打造“软硬一体”智慧工厂,全流程自动化引领印刷包装行业数智变革
大数据·运维·数据仓库·人工智能·低代码·自动化
HXDGCL14 小时前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
运维全栈笔记16 小时前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
Jinkxs16 小时前
LoadBalancer- 主流负载均衡工具盘点:Nginx / Haproxy / Keepalived 基础介绍
运维·nginx·负载均衡
CQU_JIAKE16 小时前
4.28~4.30【Q】
linux·运维·服务器