zoukankan      html  css  js  c++  java
  • circus && web comsole docker-compose 独立部署

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

  • 相关阅读:
    高性能JavaScript DOM编程
    浏览器缓存机制浅析
    高性能JavaScript 循环语句和流程控制
    高性能JavaScript 编程实践
    HTML5 postMessage 跨域交换数据
    纠结的连等赋值
    从setTimeout谈JavaScript运行机制
    闭包拾遗 & 垃圾回收机制
    闭包初窥
    Odoo中如何复制有唯一性约束的记录?
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11003270.html
Copyright © 2011-2022 走看看