问题的根本原因是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

circus && web comsole docker-compose 独立部署的更多相关文章

  1. Docker Compose 一键部署Nginx代理Tomcat集群

    Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...

  2. Docker Compose 一键部署LNMP

    Docker Compose 一键部署LNMP 目录结构 [root@localhost ~]# tree compose_lnmp/ compose_lnmp/ ├── docker-compose ...

  3. Docker Compose 一键部署多节点爬虫程序

    Docker Compose 一键部署多节点爬虫程序 目录结构 [root@localhost ~]# tree compose_crawler/ compose_crawler/ ├── cento ...

  4. Docker Compose安装部署Jenkins

    流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置. 1.前言 数据卷挂载到 /var 磁盘目录下,因为该磁盘空间较大,后面需要挂载容器数据卷,以防内存吃紧. 为了可以留存启 ...

  5. circus && web comsole docker-compose 独立部署web console 的一个bug

    如果直接使用以下的docker-compose 文件部署会有通过多播通信获取endpoint 异常的问题(circus 在stats endpoint 获取少了一个c) 这个问题是部分网络情况下会出现 ...

  6. [Docker]compose一键部署nginx

    Docker-compose部署nginx 创建配置文件 mkdir -p /usr/local/docker/nginx cat > /usr/local/docker/nginx/docke ...

  7. Docker compose自动化部署

    安装 https://docs.docker.com/compose/install/#install-compose

  8. Docker Compose一键部署Nginx反向代理Tomcat集群

    目录结构如下 mysql/conf/my.cnf [mysqld] user=mysql port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/ ...

  9. 开源跨境ERP - 小老板 Docker/Docker Compose一键部署

    先上部署成功后的截图,各个菜单点击均无报错 DockerCompose 包含: 1. 三个mysql5.7数据库 2. redis php会话存储+ memcached 3. 小老板php主程序 do ...

随机推荐

  1. centos 6.5安装zabbix 4.4

    一.安装环境 本环境,使用单机部署. 操作系统:centos 7.5 x64zabbix-server,Mysql,php,nginx都在同一台服务器.都是使用Yum安装的! 官方安装文档: http ...

  2. Java 函数式编程和Lambda表达式

    1.Java 8最重要的新特性 Lambda表达式.接口改进(默认方法)和批数据处理. 2.函数式编程 本质上来说,编程关注两个维度:数据和数据上的操作. 面向对象的编程泛型强调让操作围绕数据,这样可 ...

  3. spring Boot 学习(四、Spring Boot与任务)

    一.异步任务 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在 处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用 多线程来完成此类任务,其实,在Spri ...

  4. Hadoop问题解决:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    在配置好hadoop的环境之后,命令启动./start-all.sh发现经常出现这样的一个警告: WARN util.NativeCodeLoader: Unable to load native-h ...

  5. 自学Python编程的第四天----------来自苦逼的转行人

    2019-09-14 21:15:24 今天是学习Python的第四天,也是写博客的第四天 今天的内容是有关'列表'.'元组'.'range'的用法 列表:增删改查.列表的嵌套 元组:元组的嵌套 ra ...

  6. 30个关于Shell脚本的经典案例(上)

    对于初学者而言,因为没有实战经验,写不出来Shell脚本很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验.针对以上问题,总结了30个生产环境中经典的Shell脚本, ...

  7. 【开发工具】- 如何导出/导入Idea的配置文件

    导出配置 打开工具,找到 file -> export setting ,选择路径即可,导出的是setting.jar文件. 导入配置 file –> import setttings – ...

  8. 【开发笔记】- Velocity中特殊符号展示乱码的问题

    问题 需求是需要在后台将收货国家对应的币种.币种符号返回给前台并展示,在返回给前端后出现了页面币种符号展示乱码的问题. 解决方式 在获取货币符号时添加以下代码,防止velocity对特殊符号进行转义处 ...

  9. electron-vue多显示屏下将新窗口投放是其他屏幕

    display对象可以获取所有显示屏此处演示程序启动是投放新窗口至另一屏幕 import { app, BrowserWindow } from 'electron' const electron = ...

  10. 三星手机使用应用沙盒一键修改路由mac数据

    之前文章介绍了怎么在安卓手机上安装激活xposed框架,xposed框架的极强的功能大家都知道,能够不修改apk的前提下,修改系统底层的参数,打比方在某些应用情景,大家需要修改手机的某个系统参数,这情 ...