1

ローカル セットアップの自動化のために vagrantfile の作成に取り組んでいます。vagrant を使用して、アプリの docker イメージを作成し、vm 内で実行しています。すべてが 1 つのコマンドの下にあります。vagrant up つまり、手動で行う必要があることが 1 つありますmvn clean package

vagrantfile から mvn コマンドを実行する方法はあるのvagrant upでしょうか。

4

1 に答える 1

2

@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 コマンドが実行されます。

繰り返しますが、これは簡単な例です。必要に応じて使用してください

于 2016-05-12T12:57:58.307 に答える