一、创建docker image
FROM centos:latest MAINTAINER swhysc #install jdk RUN mkdir /home/java ADD jdk-8u311-linux-x64.tar.gz /home/java ENV JAVA_HOME=/home/java/jdk1.8.0_311 ENV CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$PATH:$JAVA_HOME/bin RUN mkdir /opt/kettle RUN echo "Asia/shanghai" > /etc/timezone COPY data-integration /opt/kettle/data-integration/ # add kettle env ENV KETTLE_HOME=/opt/kettle/data-integration RUN chmod +x /opt/kettle/data-integration/*.sh #create ktr job dir RUN mkdir /opt/kettle/kettle_job # open port EXPOSE 18080 #start cart CMD sh /opt/kettle/data-integration/carte.sh /opt/kettle/kettle_job/carte.xml
二、创建容器
注:创建image时需要确保/opt/kettle/data-integration/.kettle/目前已创建
docker run --name kettle -d -p 18080:18080 -v /data/kettle/kettle_job:/opt/kettle/kettle_job -v /data/kettle/conf/kettle.properties:/opt/kettle/data-integration/.kettle/kettle.properties -v /data/kettle/conf/carte.xml:/opt/kettle/data-integration/carte.xml --restart=always mydocker/kettle
二、配置carte
kettle 的配置文件在这里 /opt/kettle/data-integration/.kettle/kettle.properties
三、常见错误
1.[Fatal Error] :324:13: Invalid byte 1 of 1-byte UTF-8 sequence.
用ue打开spoon.bat,在if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"
后面加了"-Dfile.encoding=UTF-8",再重启即可解决乱码。
2.Carte上面的作业自动丢失的问题
修改kettle.properties中KETTLE_CARTE_OBJECT_TIMEOUT_MINUTES,1440分钟(1天)为一年。
master1 IP地址 开放的端口 Y cluster cluster 1000 1440 0



