You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pulsar与Python运行流程整合到docker-compose.yaml中

配置操作步骤

第一步:整理项目文件结构

先把所有相关文件放到同一个项目根目录下,结构如下:

项目根目录/
├── docker-compose.yaml
├── Dockerfile
├── requirements.txt
├── consumer.py
└── producer.py

第二步:编写Python服务镜像构建文件(Dockerfile)

在项目根目录新建Dockerfile,内容如下,用来构建带Python3.8环境和依赖的镜像:

FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY consumer.py producer.py ./

第三步:编写依赖声明文件(requirements.txt)

在项目根目录新建requirements.txt,填入你脚本需要的依赖,基础的Pulsar客户端参考如下,有其他第三方依赖可以直接追加在后面:

pulsar-client==2.8.1

第四步:更新docker-compose.yaml配置

替换你原来的docker-compose.yaml内容如下:

version: '3.8'
services:
  standalone:
    image: apachepulsar/pulsar:2.8.1
    ports:
      - 8080:8080
      - 6650:6650
    command: bin/pulsar standalone
    # 增加健康检查,确保Pulsar完全启动后再运行Python脚本
    healthcheck:
      test: ["CMD", "bin/pulsar-admin", "brokers", "healthcheck"]
      interval: 10s
      timeout: 5s
      retries: 5

  # 基础Python服务,仅用来复用配置,不会单独启动
  python-base:
    build: .
    profiles: ["donotstart"]
    depends_on:
      standalone:
        condition: service_healthy

  consumer:
    extends: python-base
    command: python consumer.py
    # 启动失败自动重试,避免Pulsar偶尔启动延迟导致的连接报错
    restart: on-failure

  producer:
    extends: python-base
    command: python producer.py
    restart: on-failure

注意事项

  • 你的consumer.py、producer.py中连接Pulsar的地址需要修改为pulsar://standalone:6650,不要使用localhost,容器内部可通过服务名直接访问Pulsar节点
  • 所有文件准备完成后,在项目根目录执行docker compose up即可一键启动所有服务

内容的提问来源于stack exchange,提问作者Hofbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:39:04