首先,让我通知你,这个问题与OPENSHIFT有关。我厌倦了用 Jenkins 构建 war,然后手动将新建的 war 文件传输到服务器——这很耗时。
我正在尝试以一种方式部署从 Jenkins 构建的 Maven 应用程序,并将其部署到以另一种方式运行的 TOMCAT 7 服务器中。
在 Jenkins 构建后,我正在使用通过 Jenkins 部署容器插件将我的 war 文件推送到 TOMCAT 服务器。在 tomcat 服务器中,我编辑了 tomcat-users.xml。
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager"/>
我尝试使用可用的 JBoss AS 7 来部署它。但也无法部署 - 因此决定切换到 Tomcat,希望在 tomcat 中的部署比在 JBoss 中的部署更容易。
最佳答案
以下是使用 Jenkins/execute shell 执行此操作的方法: (这是使用 Java/Maven 的示例,但您可以将它用于任何其他堆栈。)
source $OPENSHIFT_CARTRIDGE_SDK_BASH
## Aliasing rsynch
alias rsync="rsync --delete-after -az -e '$GIT_SSH'"
## OPENSHIFT_NAMESPACE => redrumapi
## Setting upstream SSH
upstream_ssh="${OPENSHIFT_APP_UUID}@apiserver1-${OPENSHIFT_NAMESPACE}.rhcloud.com"
## Remove previous metadata, if any
rm -f $OPENSHIFT_HOMEDIR/app-deployments/current/metadata.json
#if ! marker_present "force_clean_build"; then
# don't fail if these rsyncs fail
#set +e
rsync $upstream_ssh:'$OPENSHIFT_BUILD_DEPENDENCIES_DIR' $OPENSHIFT_BUILD_DEPENDENCIES_DIR
rsync $upstream_ssh:'$OPENSHIFT_DEPENDENCIES_DIR' $OPENSHIFT_DEPENDENCIES_DIR
#set -e
#fi
## Build/update libs and run user pre_build and build
##gear build
cd $OPENSHIFT_DATA_DIR
echo -e "<settings><localRepository>$OPENSHIFT_DATA_DIR.m2</localRepository></settings>" > settings.xml
cd $WORKSPACE
git pull origin master
## Build your project with the settings.xml and other switches that you might need (or not?)
mvn clean install -s $OPENSHIFT_DATA_DIR/settings.xml -P openshift -Djacoco.skip=true -DskipTests -Dbuild.number=${BUILD_NUMBER}
deployment_dir=`$GIT_SSH $upstream_ssh 'gear create-deployment-dir'`
rsync $WORKSPACE/redrum-web/target/your_project.war $upstream_ssh:app-root/runtime/repo/webapps
$GIT_SSH $upstream_ssh "gear remotedeploy --trace --deployment-datetime $deployment_dir"
关于java - OpenShift:无法将 Jenkins 在 Openshift 中生成的 war 部署到另一个设备中的容器 (Tomcat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286375/