zoukankan      html  css  js  c++  java
  • netflix conductor 学习(一)docker-compose 运行

    为了方便学习以及使用netflix conductor 基于官方的dockerfile,构建了server 以及ui 的容器镜像并push dockerhub

    环境准备

    • 官方docker-compose文件

      需要基于容器的构建很慢

    version: '2.3'
    services:
      conductor-server:
        environment:
          - CONFIG_PROP=config.properties
        image: conductor:server
        build:
          context: ../
          dockerfile: docker/server/Dockerfile
        networks:
          - internal
        ports:
          - 8080:8080
        links:
          - elasticsearch:es
          - dynomite:dyno1
        depends_on:
          elasticsearch:
            condition: service_healthy
          dynomite:
            condition: service_healthy
        logging:
          driver: "json-file"
          options:
            max-size: "1k"
            max-file: "3"
      conductor-ui:
        environment:
          - WF_SERVER=http://conductor-server:8080/api/
        image: conductor:ui
        build:
          context: ../
          dockerfile: docker/ui/Dockerfile
        networks:
          - internal
        ports:
          - 5000:5000
        links:
          - conductor-server
      dynomite:
        image: v1r3n/dynomite
        networks:
          - internal
        ports:
          - 8102:8102
        healthcheck:
          test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/8102'
          interval: 5s
          timeout: 5s
          retries: 12
        logging:
          driver: "json-file"
          options:
            max-size: "1k"
            max-file: "3"
      # https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:5.6.8
        environment:
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - transport.host=0.0.0.0
          - discovery.type=single-node
          - xpack.security.enabled=false
        networks:
          - internal
        ports:
          - 9200:9200
          - 9300:9300
        healthcheck:
          test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/9300'
          interval: 5s
          timeout: 5s
          retries: 12
        logging:
          driver: "json-file"
          options:
            max-size: "1k"
            max-file: "3"
    networks:
      internal:
    • 构建push dockerhub && 修改的docker-compose 文件
    version: '3'
    services:
      conductor-server:
        environment:
          - CONFIG_PROP=config.properties
        image: dalongrong/conductor:server
        volumes: 
        - "./config.properties:/app/config/config.properties"
        networks:
          - internal
        ports:
          - 8080:8080
      conductor-ui:
        environment:
          - WF_SERVER=http://conductor-server:8080/api/
        image: dalongrong/conductor:ui
        networks:
          - internal
        ports:
          - 5000:5000
      dynomite:
        image: v1r3n/dynomite
        networks:
          - internal
        ports:
          - 8102:8102
        healthcheck:
          test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/8102'
          interval: 5s
          timeout: 5s
          retries: 12
      # https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html
      elasticsearch:
        image: elasticsearch:5.6.8
        environment:
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
          - transport.host=0.0.0.0
          - discovery.type=single-node
          - xpack.security.enabled=false
        networks:
          - internal
        ports:
          - 9200:9200
          - 9300:9300
    networks:
      internal:
    • 配置修改
      为了测试使用的memery 模式

    启动&&效果

    • 启动
     
    docker-compose up -d
    • 效果

    es


    ui


    swagger api


    workflow 图形

    说明

    以上只是简单的基本环境运行,后边会详细学习task 以及workflow 的定义以及使用

    参考资料

    https://netflix.github.io/conductor
    https://github.com/Netflix/conductor/blob/master/docker/docker-compose.yaml
    https://github.com/rongfengliang/netflix-conductor-docker-compose

  • 相关阅读:
    Spark基本架构及原理
    深度剖析Spark分布式执行原理
    Spark的集群管理器
    基于Redis的开源分布式服务Codis
    RabbitMQ 概念
    分布式事务实现
    优酷 视频上传服务
    深入解析Java中volatile关键字的作用
    mysql in查询 结果乱序 引发的思考
    不安装oracle客户端,用plsql连接oracle
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11363257.html
Copyright © 2011-2022 走看看