ローカル セットアップの自動化のために vagrantfile の作成に取り組んでいます。vagrant を使用して、アプリの docker イメージを作成し、vm 内で実行しています。すべてが 1 つのコマンドの下にあります。vagrant up
つまり、手動で行う必要があることが 1 つありますmvn clean package
。
vagrantfile から mvn コマンドを実行する方法はあるのvagrant up
でしょうか。
ローカル セットアップの自動化のために vagrantfile の作成に取り組んでいます。vagrant を使用して、アプリの docker イメージを作成し、vm 内で実行しています。すべてが 1 つのコマンドの下にあります。vagrant up
つまり、手動で行う必要があることが 1 つありますmvn clean package
。
vagrantfile から mvn コマンドを実行する方法はあるのvagrant up
でしょうか。
@Patrickが言及しているように、シェルのプロビジョニングはぴったりです-私は個人的にgradleに使用していますが、mavenでも同じことができます。スクリプトを呼び出す方法は次のとおりです
config.vm.provision "shell", path: "script/run-test.sh", privileged: false, run: 'always'
path
: プロジェクト ディレクトリからのシェル スクリプトのパスです。privileged
: 設定されていない場合、ルートはスクリプトを実行します。vagrant ユーザー用に maven がインストールされている場合は、必ず false に設定してください。そうしないと、問題が発生します。run: 'always'
:これは私のユースケースです(あなたにとって意味があるかどうかを選択するのはあなた次第です)、スクリプトは私が実行すると常に実行されますvagrant up
シェルスクリプトは次のようになります
#!/bin/bash
if [ -d "/home/vagrant/test" ];then
cd /home/vagrant/test && git pull
cd /home/vagrant/test && maven compile
cd /home/vagrant/test && maven deploy
.....
else
git clone <your project> /home/vagrant/test
fi
これは例です。基本的に初めてインスタンスを作成すると、git リポジトリが複製されます。その後、git 最新ファイルからプルされ、maven コマンドが実行されます。
繰り返しますが、これは簡単な例です。必要に応じて使用してください