LoginSignup
4
5

More than 5 years have passed since last update.

OpenShiftでSpringBootを動かす

Posted at

やりたいこと

Gradleで作成したSpringBootのプロジェクトをOpenShiftで実行する。
OpenShiftのアプリケーションはDIYで作成する。
ソースも、Bitbucketで管理することで、無料でソース管理をし、実行環境を構築する。

前提

Gradleで作成したSpringBootのプロジェクトがBitbucketのリポジトリに存在する。
OpenShiftのアカウントがあり、rhcコマンドがしようできるようになっている。

OpenShift用のファイルを作成する

プロジェクトのルートディレクトリに .openshift/action_hooks ディレクトリを作成し、
deploy,start,stopファイルを作成する。

deploy : JDK,Gradleがなければをダウンロードし、gradleでパッケージを作成する。

deploy
#!/bin/bash

set -x

if [ ! -d $OPENSHIFT_DATA_DIR/jdk1.8.0_101 ]; then
   cd $OPENSHIFT_DATA_DIR
   wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz
   tar xvf *.tar.gz
   rm -f *.tar.gz
fi

if [ ! -d $OPENSHIFT_DATA_DIR/gradle-2.13 ]; then
    cd $OPENSHIFT_DATA_DIR
    wget https://services.gradle.org/distributions/gradle-2.13-bin.zip
    unzip gradle-2.13-bin.zip
    rm -f gradle-2.13-bin.zip
fi

if [ ! -d $OPENSHIFT_DATA_DIR/gradle ]; then
    cd $OPENSHIFT_DATA_DIR
    mkdir gradle
fi

if [ ! -d $OPENSHIFT_DATA_DIR/logs ]; then
    cd $OPENSHIFT_DATA_DIR
    mkdir logs
fi

cd $OPENSHIFT_REPO_DIR
export GRADLE_USER_HOME=$OPENSHIFT_DATA_DIR/gradle
export GRADLE_HOME=$OPENSHIFT_DATA_DIR/gradle-2.13
export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$GRADLE_HOME/bin:$PATH

gradle bootRepackage

start : 起動時に実行されるスクリプト

start
#!/bin/bash

source $OPENSHIFT_CARTRIDGE_SDK_BASH

set -x

export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH

cd $OPENSHIFT_REPO_DIR
nohup java -jar build/libs/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} &

stop : 停止時に実行されるスクリプト

stop
#!/bin/bash

source $OPENSHIFT_CARTRIDGE_SDK_BASH

PID=$(ps -ef | grep java.*\.jar | grep -v grep | awk '{ print $2 }')

if [ -z "$PID" ]
then
    client_result "Application is already stopped"
else
    kill $PID
fi

各ファイルは実行権を追加する。

OpenShiftにアプリケーションを作成する。

以下のコマンドでDIYカートリッジでアプリケーションを作成する。

rhc app create <app-name> diy-0.1

テンプレートのファイルが作成されるので、一度削除し、コミットする。

cd <app-name>
git rm -rf .openshift README.md diy misc
git commit -am "Removed template application source code"

Bitbucketのリポジトリをリモートリポジトリとして追加し、pullする。

git remote add upstream https://<user>@bitbucket.org/<user>/<repository>.git
git pull -s recursive -X theirs upstream master

Bitbucketのからpullしたファイルを、OpenShiftにpushする。

git push

deploy, start の各ファイルが実行されるので、SpringBootが起動したら、ブラウザで画面にアクセスする。

http://<app-namd>-<domain>.rhcloud.com/

メモ

  • action_hooksのファイルに実行権を忘れると、当たり前だが、失敗する。
  • build.gradleは、変更しなかった。

参考

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5