1
자동으로 openshift에서 프로그램을 다시 작성하고 업데이트하는이 스크립트에서 많은 시간을 보내고 있습니다. 내 스크립트는 다음과 같습니다 :OpenShift Maven이 올바른 JAVA_HOME을 사용하지 않습니다
시작 훅 :
#!/bin/bash
# The logic to start up your application should be put in this
# script. The application will work only if it binds to
# $OPENSHIFT_DIY_IP:8080
source $OPENSHIFT_CARTRIDGE_SDK_BASH
nohup /bin/bash $OPENSHIFT_REPO_DIR/diy/abot.sh > $OPENSHIFT_LOG_DIR/diy.log &
client_result "Success!"
exit 0
정지 후크 : 스크립트가 "daemonized"하고
#!/bin/bash
source $OPENSHIFT_CARTRIDGE_SDK_BASH
PID=`cat $OPENSHIFT_DATA_DIR/abot.pid`
echo PID: $PID
if kill $PID
then
exit 0
else
client_result "App already stoped!"
fi
abot.sh, 모든 프로세스를 실행
#!/bin/bash
cd $OPENSHIFT_DATA_DIR
echo $$ > abot.pid
JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
PATH=$JAVA_HOME/bin:$PATH
javac -version
while :
do
if [ ! -d AbotDir ]
then
git clone https://github.com/ArsenArsen/ABot.git AbotDir
else
cd AbotDir
git pull
cd ..
fi
cd AbotDir
echo $JAVA_HOME \| $PATH
$JAVA_HOME/bin/javac -version
$JAVA_HOME/bin/java -version
mvn -version
mvn -e -Dmaven.repo.local=$OPENSHIFT_DATA_DIR/.m2/repository
cd ..
$JAVA_HOME/bin/java -jar AbotDir/target/ABot-jar-with-dependencies.jar -nl -t TOKEN
echo "" > $OPENSHIFT_LOG_DIR/diy.log
done
필자는 여러 테스트를 수행했으며, 모두 maven이 Java7 경로를 사용하고 있다는 결론을 내렸다. Java8로 설정됩니다. 이러한 중 하나는 : 나는이 대답을 수락하지 않습니다
당신이 Maven (3.3.9)의 더 많은 uptodate 버전을 사용하는 것과는 별도로'$ HOME/.mavenrc' 파일을 구성했거나 PATH에 다른 Java 버전이 있다고 가정합니다. .. – khmarbaise
Maven을 업데이트 할 수 없거나 java 버전을 제거 할 수 있지만 mavenrc 파일을 확인할 것입니다. 문제는 내가 OpenShift의 PaaS에 있는데, sudo 암호를주지 않는 이유가 있습니다. @khmarbaise – ArsenArsen
mavenrc 파일이 없습니다. @khmarbaise – ArsenArsen