【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,这样就可以通过公网地址来访问

相关推荐
一个向上的运维者2 小时前
详细解读k8s的kind中service与pod的区别
容器·k8s
yzx9910133 小时前
生活在数字世界:一份人人都能看懂的网络安全生存指南
运维·开发语言·网络·人工智能·自动化
橙*^O^*安5 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
阿拉斯加大闸蟹6 小时前
基于RDMA 通信的可负载均衡高性能服务架构
运维·架构·负载均衡
不是吧这都有重名7 小时前
为什么ubuntu大文件拷贝会先快后慢?
linux·运维·ubuntu
sunshine-sm7 小时前
CentOS Steam 9安装 Redis
linux·运维·服务器·redis·centos
Davie_Liu7 小时前
【Docker Buildx】docker buildx本地构建多架构镜像,拉取镜像时的网络延迟问题(已解决)
网络·docker·buildx
_Walli_8 小时前
k8s集群搭建(三)-------- Dashboard UI
云原生·容器·kubernetes
棒棒的唐8 小时前
armbian平台ubuntu环境下telnet安装及启动,给pantherX2增加一个应急通道
linux·运维·armbian·telnetd
纳切威8 小时前
CentOS 7部署Zabbix5.0
linux·运维·centos·zabbix