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

将stripe-cli集成至现有docker-compose配置并启用事件转发

问题

我们可以通过以下终端命令启动stripe-cli:

docker run --rm -it stripe/stripe-cli listen  --forward-to http://127.0.0.1:8080/stripe/webhook --api-key sk_API-KEY

但如何将该服务添加到已有的、可在本地与AWS环境正常运行的docker-compose文件中?我希望stripe-cli检测到事件时,能触发javaapp中的指定端点。

需扩展的示例docker-compose文件如下:

version: "3.8"
services:

  https:
    build:
      context: ./docker/nginx
    ports:
      - 443:443
      - 80:80
    extra_hosts:
      - host.docker.internal:host-gateway

  javaapp:
    image: 1.dkr.ecr.eu-west-1.amazonaws.com/JAVA_APP:${JAVA_APP:-latest}
    ports:
      - 8080:8080
    environment:
      JAVA_OPTS: -java.app.config=/etc/config.groovy
    volumes:
      - ./configuration/application/java/ExternalConfig.docker.groovy:/etc/config.groovy
    extra_hosts:
      - host.docker.internal:host-gateway
    profiles:
      - javaapp

  redis:
    image: redis:6.2.6-alpine
    ports:
      - 6379:6379
    volumes:
      - company-redis:/data

  mongo:
    image: mongo:3.6.12
    ports:
      - 27017:27017
    volumes:
      - company-mongo:/data/db/
      
volumes:
  company-mongo:
  company-redis:
解决方案

直接在现有services块下新增stripe-cli服务即可,修改后的完整docker-compose文件如下:

version: "3.8"
services:

  https:
    build:
      context: ./docker/nginx
    ports:
      - 443:443
      - 80:80
    extra_hosts:
      - host.docker.internal:host-gateway

  javaapp:
    image: 1.dkr.ecr.eu-west-1.amazonaws.com/JAVA_APP:${JAVA_APP:-latest}
    ports:
      - 8080:8080
    environment:
      JAVA_OPTS: -java.app.config=/etc/config.groovy
    volumes:
      - ./configuration/application/java/ExternalConfig.docker.groovy:/etc/config.groovy
    extra_hosts:
      - host.docker.internal:host-gateway
    profiles:
      - javaapp

  stripe-cli:
    image: stripe/stripe-cli
    command: listen --forward-to http://javaapp:8080/stripe/webhook --api-key sk_API-KEY
    depends_on:
      - javaapp
    profiles:
      - javaapp
    # 对应原命令的-it参数,如需保留终端交互则保留以下两项
    tty: true
    stdin_open: true

  redis:
    image: redis:6.2.6-alpine
    ports:
      - 6379:6379
    volumes:
      - company-redis:/data

  mongo:
    image: mongo:3.6.12
    ports:
      - 27017:27017
    volumes:
      - company-mongo:/data/db/
      
volumes:
  company-mongo:
  company-redis:

关键说明

  • 网络访问:Docker Compose默认创建共享网络,直接用服务名javaapp代替127.0.0.1即可访问Java应用容器,无需依赖宿主机端口映射。
  • 依赖控制:通过depends_on确保stripe-cli在javaapp启动后再启动,避免服务未就绪导致的连接失败。
  • Profile同步:将stripe-cli加入javaapp profile,保证只有启动Java应用时才会启动该服务,和原有配置逻辑一致。
  • 交互模式:tty: true和stdin_open: true对应原命令的-it参数,若不需要终端交互可直接删除。
  • 安全优化:建议把硬编码的sk_API-KEY替换为环境变量(如${STRIPE_SECRET_KEY}),避免密钥暴露,更符合配置规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:40