doker-compose构建部署最新版conductor教程,纯干货篇

Info

官方教程
Running Conductor Using Docker - Conductor Documentation

  • github url https://github.com/Netflix/conductor

服务器环境

  • Amazon Linux EC2
  • 实例类型 c5.xlarge
  • 部署目录 /opt/docker/conductor
  • Docker
  • docker-compose

配置conductor需要环境,已有请跳过

1.安装Java 11

首先,确保你的系统上安装了Java 11。在Amazon Linux上,你可以使用以下命令来安装Amazon Corretto 11:

sudo yum install java-11-amazon-corretto-devel

验证Java是否正确安装:

java -version

设置**JAVA_HOME**环境变量:

echo "export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64" >> ~/.bashrc
source ~/.bashrc

2.Node.js

在Amazon Linux上安装Node.js

  1. 首先,你需要下载Node.js的源代码。你可以从Node.js的官方网站选择一个版本下载,或者使用以下命令下载最新的LTS版本:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
    
  2. 接下来,重新加载你的shell配置,以便你可以使用新安装的nvm命令:

    source ~/.bashrc
    
  3. 使用nvm安装Node.js。以下命令将安装最新的LTS版本:

    nvm install --lts
    
  4. 验证Node.js和npm的安装:

    node -v
    npm -v
    

2.2安装yarn

npm install -g yarn

部署Conductor

1. 克隆Netflix Conductor项目

git clone https://github.com/Netflix/conductor.git
cd conductor

2. 使用Gradle构建项目

使用Gradle Wrapper构建项目,跳过测试:

./gradlew build -x test

3. 构建Conductor Server Docker镜像

进入Docker文件夹并构建镜像:

docker build -t my-conductor-server -f docker/server/Dockerfile .

4.构建Conductor UI Docker镜像

  1. 进入Conductor UI目录:确保你在Conductor项目的UI目录中。如果Conductor UI的Dockerfile在**conductor/ui**目录中,你可以通过以下命令进入该目录:

    cd conductor/ui
    
  2. 安装依赖并构建项目:在UI目录中,你需要安装依赖并构建项目。确保你已经安装了Node.js和npm,然后运行以下命令:

    yarn install
    yarn build
    
  3. 创建Dockerfile

    在**/ui目录中创建一个名为Dockerfile**的文件,并添加以下内容:

    DockerfileCopy code
    FROM nginx:alpine
    COPY build /usr/share/nginx/html
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]
    
  4. 构建Docker镜像

    docker build -t my-conductor-ui .
    

5. 创建docker-compose.yml文件

在**/opt/docker/conductor目录下创建docker-compose.yml**文件,并填入以下内容:

version: '3'
services:
  conductor-server:
    image: my-conductor-server:latest
    ports:
      - "8080:8080"
    depends_on:
      - elasticsearch
      - dynomite
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G

  conductor-ui:
    image: my-conductor-ui:latest
    ports:
      - "5000:5000"
    depends_on:
      - conductor-server
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 2G

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.10
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
    volumes:
      - es-data:/usr/share/elasticsearch/data
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G

  dynomite:
    image: v1r3n/dynomite:latest
    ports:
      - "8102:8102"
    environment:
      - DYNOMITE_PORT=8102
      - DYNOMITE_TOKENS=101134286
    volumes:
      - dynomite-data:/data/dynomite
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 2G
    networks:
      default:
        aliases:
          - rs

volumes:
  es-data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /opt/docker/conductor/es-data

  dynomite-data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /opt/docker/conductor/dynomite-data

6. 创建卷文件夹

在**/opt/docker/conductor**目录下创建所需的卷文件夹:

mkdir -p /opt/docker/conductor/es-data
mkdir -p /opt/docker/conductor/dynomite-data

这些文件夹将用作Elasticsearch和Dynomite的数据卷。

7. 启动服务

使用docker-compose启动服务:

docker-compose up -d

总结

现在,Conductor应该在端口8080上运行,并且已经配置了Elasticsearch和Dynomite。

  • Conductor Server API:API的基本URL**http://localhost:8080/api**。
  • Conductor UI:**http://localhost:5000**来访问Conductor的用户界面。

如果你在其他系统上操作或遇到任何问题,请随时询问。

基于docker hub flaviostutz的老版本,一键式

  • github url: https://github.com/flaviostutz/conductor-server
version: '3.7'

services:

  conductor-server:
    build: .
    image: flaviostutz/conductor-server:2.12.1.5
    environment:
      - DYNOMITE_HOSTS=dynomite:8102:us-east-1c
      - ELASTICSEARCH_URL=elasticsearch:9300
      - LOADSAMPLE=true
      - PROVISIONING_UPDATE_EXISTING_TASKS=false
    ports:
      - 8080:8080

  conductor-ui:
    image: flaviostutz/conductor-ui
    environment:
      - WF_SERVER=http://conductor-server:8080/api/
    ports:
      - 5000:5000

  dynomite:
    image: flaviostutz/dynomite
    ports:
      - 8102:8102

  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
    ports:
      - 9200:9200
      - 9300:9300
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值