前提
EC2インスタンス(AmazonLinux2)を二つ作り、片方にアプリケーションサーバー(Tomcat9)、**もう片方をビルドサーバー(Jenkins)**にしました。なお、RDSを利用します(イメージ)。
Jenkinsの設定は、GitHubのリモートリポジトリを監視し、変更があればcloneなりpull → buildしてアプリケーションサーバーにwarファイルをデプロイさせるものにしようと思っています。
アプリは下記で作成しました。
- JDK1.8.0
- SpringBoot
- MySQL 8.0
- Gradle 6.0
#お聞きしたいこと
リモートリポジトリからとってきたSpringBootのapplication.properties
には、本番用のRDSのURLやユーザー名、パスワードをどう反映させ、ビルドサーバーにてwarを生成するのでしょうか?
本番用の上記情報は秘密情報のため、GitHubのリモートリポジトリ上のapplication.properties
にはローカルでのテスト用の情報が記述されていると想定しているのですが。。。
#自分なりに考えた方法
色々調べたところ、下記のようにすればいいのでは、と考えましたが。。。
- リモートリポジトリにはユニットテスト用の
application-test.properties
とダミー本番用のapplication-release.properties
を用意しておく。ただし、後者の中身はダミー情報。 - 本番用かつ本物の
application-release.proerties
をビルドサーバーのどこかに保存 - Jenkinsで下記のようなシェルを実行
・git pull
・本物のapplication-release.properties
に差し替え
・./gradlew build
でビルド実行。
(プロパティファイルはユニットテストではtestが使用されるよう設定)
- アプリケーションサーバーでは、本番用のプロパティファイルを指定して読み込み(こちらの4を参考)。
エンジニアになるべく勉強中の身のため、「そもそもこんなCI/CDはしない」など教えて頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/10 06:35
2020/09/10 11:02