问题的根本原因是web console 的bug(实际上还是python 对于依赖版本出来不明确)

circus 进程docker 镜像

  • dockerfile
FROM python:slim-stretch
LABEL AUTHOR="dalongrong"
LABEL EMAIL="1141591465@qq.com"
WORKDIR /app
RUN apt-get update && apt-get install -y --reinstall build-essential \
    && pip install circus chaussette \
    && apt-get remove -y --purge build-essential \
    && rm -rf /var/lib/apt/lists/*
COPY circus.ini /app/
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
  • entrypoint.sh
#!/bin/sh
circusd /app/circus.ini
  • circus demo 配置文件
[circus]
statsd = True
[watcher:webapp]
cmd = /usr/local/bin/chaussette --fd $(circus.sockets.web)
numprocesses = 5
use_sockets = True
[socket:web]
host = 0.0.0.0
port = 9999

circus web console docker 镜像

  • dockerfile

    说明因为pyzmq 以及tornado 版本的问题,进行了特殊处理

FROM python:2.7-slim-stretch
LABEL AUTHOR="dalongrong"
LABEL EMAIL="1141591465@qq.com"
RUN apt-get update && apt-get install -y --reinstall build-essential \
    && pip install circus-web \
    && pip uninstall -y tornado \
    && pip uninstall -y pyzmq \
    && pip install tornado==3.2.2 \
    && pip install pyzmq==16.0.4 \
    && apt-get remove -y --purge build-essential \
    && rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
  • entrypoint
#!/bin/sh
circushttpd

集成试用

使用docker-compose

  • docker-compose 文件
version: "3"
services: 
  circus:
    image: dalongrong/circus:3.7-slim-stretch
    ports: 
    - "9999:9999"
    - "5555:5555"
    volumes: 
    - "./circus.ini:/app/circus.ini"
  circus-web:
    image: dalongrong/circusd-web:2.7-slim-stretch
    ports:
    - "8080:8080"
  • circus 配置文件

    数据卷挂载方式

[circus]
statsd = True
check_delay = 5
endpoint = tcp://0.0.0.0:5555
pubsub_endpoint = tcp://0.0.0.0:5556
stats_endpoint= tcp://0.0.0.0:5557
[watcher:webapp]
cmd = /usr/local/bin/chaussette --fd $(circus.sockets.web)
numprocesses = 5
use_sockets = True
[socket:web]
host = 0.0.0.0
port = 9999

启动&&效果

  • 启动
docker-compose up -d
  • socket 访问

  • web console 访问

说明

因为web console 获取circus stats 接口地址错误(bug),造成无法获取进行的统计信息,只能进行操作处理,同时这种处理方式并不是很安全,实际推荐
基于ipc 通信,并通过ssh tunneling 进行管理以及通信信息查看

参考资料

https://github.com/rongfengliang/circusd-web-docker
https://github.com/rongfengliang/circusd-docker
https://github.com/rongfengliang/circus-docker-compose
https://cloud.docker.com/repository/docker/dalongrong/circusd-web
https://cloud.docker.com/repository/docker/dalongrong/circusd

最新文章

  1. .NET重构(类型码的设计、重构方法)
  2. context元素大概解说
  3. DFA敏感词过滤
  4. Linux for QQ 安装
  5. 【分享】深入浅出WPF全系列教程及源码
  6. Understanding continuations
  7. 2013~2014年度 NOIP~GDOI总结
  8. python编程基础—正则表达式
  9. caffe cifar10试跑问题总结
  10. 【深度学习】keras + tensorflow 实现猫和狗图像分类
  11. c#之多线程之为所欲为
  12. Netty中的连接管理
  13. 一文入门C3
  14. 入手Docker容器注意事项:命令结束容器退出
  15. 12.输入一个成绩计算其A,B,C,D,E等级
  16. [UE4]动态改变UniFormGird子控件的row属性
  17. POJ 2551
  18. 关于hp proliant sl210t服务器raid 1阵列配置
  19. 博弈---巴什博奕(Bash Game)(博弈入门)
  20. 写文章 使用conda管理python环境

热门文章

  1. redis-集群(codis和Cluster)
  2. 2019vivo秋招提前批笔试题第3题
  3. zookeeper+kafka集群的安装
  4. Kubernetes Storage Persistent Volumes
  5. js 杂症,this with 变量提升
  6. 4_PHP流程控制语句_1_条件控制语句
  7. django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法
  8. 使用jquery.datatable.js注意事项
  9. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例
  10. 计算机网络基础之TCP/IP 协议栈