文章目录
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
-
首先,你需要下载Node.js的源代码。你可以从Node.js的官方网站选择一个版本下载,或者使用以下命令下载最新的LTS版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
-
接下来,重新加载你的shell配置,以便你可以使用新安装的nvm命令:
source ~/.bashrc
-
使用nvm安装Node.js。以下命令将安装最新的LTS版本:
nvm install --lts
-
验证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镜像
-
进入Conductor UI目录:确保你在Conductor项目的UI目录中。如果Conductor UI的Dockerfile在**
conductor/ui
**目录中,你可以通过以下命令进入该目录:cd conductor/ui
-
安装依赖并构建项目:在UI目录中,你需要安装依赖并构建项目。确保你已经安装了Node.js和npm,然后运行以下命令:
yarn install yarn build
-
创建Dockerfile
在**
/ui
目录中创建一个名为Dockerfile
**的文件,并添加以下内容:DockerfileCopy code FROM nginx:alpine COPY build /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
-
构建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