不知道为什么,只有通过git clone git@github.com:Netflix/conductor.git
下载,项目才能跑起来。
直接在github上download的代码,跑不起来,会遇到如下的错误。
Build file '/Users/songzj/Downloads/sourceCode/conductor-3.0.1/build.gradle' line: 18
An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '9.2.2']
Failed to apply plugin class 'nebula.plugin.netflixossproject.publishing.PublishingPlugin'.
Task with name 'postRelease' not found in root project 'conductor'.
Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
准备
- git bash
- idea(为了方便)
- gradle6.8.3 (版本最好对的上)
- node.js(建议用nvm安装,用nvm记得配置国内镜像下载nodejs和npm,否则可能不能安装npm),我用的14.15.0
- conductor2.X用jdk1.8,conductor3及以上要jdk11
安装步骤
- 在windows上安装git,并git初始化。可以在CSDN上搜索教程(在windows上安装git克隆项目)。
- 设置密钥。可以在CSDN上搜索教程(Windows上GitHub配置密钥)。
不配置会出现如下错误。git@github.com: Permission denied (publickey). fatal: Could not read from remote repository
- 在git bash中选好目标地址,输入
git clone git@github.com:Netflix/conductor.git
- 配置gradle6.8.3下载地址,用complete
- 在idea中配置gradle6.8.3,conductor2.X用jdk1.8,conductor3及以上要jdk11及11+,用idea加载依赖。
- 在git里选择branch。2.31可以用。3及以上好像不能在前端的executing里显示workflow,不能加载自带的样例?
- 等待idea自动加载依赖,并build得到server。直接用终端有时可能会失败,所以建议用idea。
- 按照官方文档Unstalling and Running继续把前端安好。
- 如果安装gulp遇到
npm ERR!code EINTEGRITY
,请CSDN搜索(npm ERR! code EINTEGRITY 解决方案) - 如果准备用docker,建议在第7步的基础上继续,因为在dockerfile内编译一样可能会失败。重写
/conductor/docker/serverAndUI/dockerfile
如下。
在第7步之后,我把本地下载好并且编译完服务端的conductor文件夹复制镜像。在镜像内安装前端,因为网络原因,我选择本地下载好nodejs的安装包,再复制到镜像里。
#
# conductor:serverAndUI - Netflix conductor server and UI
#
FROM openjdk:8-jdk
MAINTAINER Netflix OSS <conductor@netflix.com>
# Make app folders
RUN mkdir -p /app/config /app/logs /app/libs /usr/local/nodejs /conductor
COPY ./node-v14.17.3-linux-x64.tar.xz /usr/local/nodejs
RUN cd /usr/local/nodejs && xz -d node-v14.17.3-linux-x64.tar.xz && tar -xf node-v14.17.3-linux-x64.tar && rm -f node-v14.17.3-linux-x64.tar && mv node-v14.17.3-linux-x64/* /usr/local/nodejs && rm -rf node-v14.17.3-linux-x64
RUN ln -s /usr/local/nodejs/bin/node /usr/local/bin
RUN ln -s /usr/local/nodejs/bin/npm /usr/local/bin
# Startup script(s)
COPY ./bin /app
# Configs
COPY ./config /app/config
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib' > /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' >> /etc/apt/sources.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CBF8D6FD518E17E1
RUN apt-get update -y && apt-get -y install git curl && chmod +x /app/startup.sh
COPY ./conductor conductor
RUN cd conductor && ./gradlew build -x test
RUN mv ./server/build/libs/conductor-server-*-all.jar /app/libs/ \
&& mv ./ui /app \
&& cd /app/ui \
&& npm install \
&& npm run build --server \
&& cd / \
&& rm -rf conductor
EXPOSE 5000 8080
CMD ["/app/startup.sh"]
ENTRYPOINT ["/bin/bash"]
11.改动/conductor/docker/docker-compose.yaml
的第一行version:xx。要和docker版本对应的上。搜索docker 与 docker-compose 文件版本 对应关系。
。。。待续,/conductor/docker下面的几个dockerfile的问题,我整理一下,可按照其中每个文件夹下的Readme摸索一下。