Herokuにシンプルな
Ratpackアプリをデプロイすることは、本来よりもはるかに複雑です。 多くの試行錯誤の後、私はようやく配備を成功させるための機能する構成を取得することができました。 この記事は、アプリケーションを段階的に展開する方法に関するマニュアルです。 次の記事では、Gradleプラグインを使用してプロセスを簡素化する方法を説明します。
アーティファクト
正常にデプロイするには、アプリケーションを正常に検出するために、Herokuのプロジェクトに特定のアーティファクトを提示する必要があります。 HerokuはGitをデプロイに使用するため、これらのファイルをGitの別のブランチに配置することをお勧めします。
まず、次のフォルダー構造を作成する必要があります。
ビン
├──コンパイル
└──検出
次の内容のファイル:
ビン/検出
ビン/コンパイル
次に、Procfileが必要です。Ratpackプロジェクトのルートディレクトリに残します。
procfile --- addons: config_vars: JAVA_OPTS: -Dfile.encoding=UTF-8 -server -Xmx512m -XX:+UseCompressedOops default_process_types: web: build/install/ratpack/bin/ratpack
build / install / ratpack / bin / ratpackファイルと
build / install / ratpackフォルダーがWebプロセスに表示されます。 このファイルとフォルダーには、プロジェクトのルートフォルダーの名前が付けられます。 ルートプロジェクトの名前は生成されたハッシュに由来するため、Herokuでのデプロイでこの値をオーバーライドすることができます(そして必要です)。 これを修正するには、プロジェクトのルート名を既知のもの(この場合はratpack)に設定する必要があります。 これは、プロジェクトのルートにある設定ファイルで構成できます。
settings.gradlerootProject.name = 'ratpack'
次に、展開プロセス中に提供された
$ PORT変数を指す
RATPACK_OPTS環境
変数を設定する必要があります。 profile.dフォルダーのプロジェクトの腸に隠されたスクリプトに登録する必要があります。
.profile.d / setenv.sh
これで、次のフォルダー構造ができました。
├──ビン
│├──コンパイル
│└──検出
├──Procfile
├──.profile.d
│└──setenv.sh
└──settings.gradle
展開プロセス
ここで、buildpackコマンドを使用してHerokuで新しいアプリケーションを作成する必要があります。 この単純なコマンドは、すべてのコマンドをプロジェクトで作成したアーティファクトに転送します。 チームは、Heroku上のUbuntu 10.04に基づいたCedar Stackなどのアプリケーションも構築します。
herokuアプリ:myapplication --buildpack github.com/kr/heroku-buildpack-inline.gitを作成します次に、展開用に作成した新しいブランチに切り替えて、すべてのアーティファクトをコミットします。
git checkout -b deploy git add bin Procfile settings.gradle .profile.d git commit -m 'Heroku deployment artifacts.' git push heroku deploy:master
これで、アプリケーションが正常にデプロイされたことを確認できます。
----->カスタムgitビルドパックの取得...完了
-----> Ratpackアプリが検出されました
-----> .jdk7フォルダーが見つかりません! キャッシュからアプリへのjdkのコピー...完了!
-----> Gradleラッパーを使用したプロジェクトのビルド:
./gradlew clean installApp
<snip />
----->プロセスタイプの検出
Procfileは型を宣言します-> JAVA_HOME、JAVA_OPTS、web
----->コンパイルされたスラッグのサイズ:64.8MB
----->起動...完了、v38
Herokuにデプロイされた
myapplication.herokuapp.comそして、ログを見てこれを確認できます。
herokuログ--tail --num 100 --app myapplication
次の記事では、
ここで提案されているGradleプラグインを使用して同じことを行う方法を説明し
ます 。 ソースは
ここにあります 。 元の記事は
こちらです。 ご清聴ありがとうございました。