python项目发布Docker Harbor

在 Python 项目中,没有直接等同于 Java 项目中的 jlib 工具来打包和上传到 Docker Harbor。但我们可以使用 Docker 和 Docker Compose 等工具实现类似的功能。这些工具帮助您打包 Python 项目并将其推送到 Docker Harbor 中。

使用 Docker 和 Docker Compose 实现类似 jlib 的功能

以下是详细步骤:

1. 创建项目结构

假设您的项目结构如下:

复制代码
my_fastapi_app/
├── app/
│   ├── main.py
│   └── ...
├── requirements.txt
├── Dockerfile
└── start.py

start.py 文件内容:

python 复制代码
import uvicorn

if __name__ == "__main__":
    uvicorn.run("app.main:app", host="0.0.0.0", port=8000, reload=True, log_level="debug")
2. 创建 Dockerfile

在项目根目录下创建 Dockerfile

Dockerfile 复制代码
# Use an official Python runtime as a parent image
FROM python:3.9-slim

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 8000 available to the world outside this container
EXPOSE 8000

# Run start.py when the container launches
CMD ["python", "start.py"]
3. 使用 Docker Compose

创建一个 docker-compose.yml 文件,以便更轻松地管理和部署应用:

yaml 复制代码
version: '3.8'

services:
  web:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/app
    environment:
      - ENV=production
4. 构建和推送镜像到 Harbor

首先,登录到您的 Harbor 仓库:

sh 复制代码
docker login your-harbor-domain.com

使用 Docker Compose 构建镜像:

sh 复制代码
docker-compose build

标记您的镜像以便推送到 Harbor:

sh 复制代码
docker tag my_fastapi_app_web:latest your-harbor-domain.com/my_project/my_fastapi_app:latest

然后,推送镜像到 Harbor:

sh 复制代码
docker push your-harbor-domain.com/my_project/my_fastapi_app:latest
5. 从 Harbor 拉取并运行镜像

在目标服务器上,从 Harbor 拉取并运行您的镜像:

sh 复制代码
docker pull your-harbor-domain.com/my_project/my_fastapi_app:latest
docker run -d -p 8000:8000 your-harbor-domain.com/my_project/my_fastapi_app:latest

通过这些步骤,您可以使用 Docker 和 Docker Compose 来打包和上传 Python 项目到 Harbor 中,类似于 Java 项目使用 jlib 的流程。Docker 和 Docker Compose 提供了强大的工具集,可以轻松管理、构建和部署容器化应用。

相关推荐
大翻哥哥1 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
zhousenshan2 小时前
Python爬虫常用框架
开发语言·爬虫·python
IMER SIMPLE3 小时前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
CodeCraft Studio3 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
专注API从业者4 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
java1234_小锋4 小时前
[免费]基于Python的协同过滤电影推荐系统(Django+Vue+sqlite+爬虫)【论文+源码+SQL脚本】
python·django·电影推荐系统·协同过滤
慕容晓开4 小时前
docker,本地目录挂载
docker
看海天一色听风起雨落4 小时前
Python学习之装饰器
开发语言·python·学习
XiaoMu_0015 小时前
基于Python+Streamlit的旅游数据分析与预测系统:从数据可视化到机器学习预测的完整实现
python·信息可视化·旅游
THMAIL5 小时前
深度学习从入门到精通 - 生成对抗网络(GAN)实战:创造逼真图像的魔法艺术
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·cnn