[問題解決] Dockerコンテナアプリケーションでmvn:コマンドが見つからないという問題を解決します



Solve Problem Mvn



問題

jenkinsを使用していたときに、シェルスクリプトを使用してmvnコマンドを実行すると、mvn:コマンドが見つかりませんでした。私のジェンキンスはdockerにインストールされているため、mvn環境はありません

理由

dockerにインストールされているjenkinsにはMavenがありません。 Mavenはホストディレクトリをマウントすることで提供できますが、コンテナ内の環境変数は設定を認識しないため、環境変数を手動で設定する必要があります。



解決する

  1. コンテナの実行時に、ホストマシンのjavaディレクトリとmavenディレクトリをマウントします
docker run -d -p 8080:8080 -v /usr/lib/jvm/java-1.8-openjdk:/usr/lib/jvm/java-1.8-openjdk -v /usr/local/maven/maven3:/usr/local/maven/maven3 Container id

-vホストのディレクトリをコンテナにマウントすることです

:コロンの前がホストディレクトリで、コロンの後がコンテナアプリケーションのディレクトリです。



  1. コンテナを正常に実行した後、コンテナを入力します
docker exec -it container id /bin/bash
  1. コンテナアプリケーションの環境変数を設定する
vi /etc/profile

ファイルの最後に次のコンテンツを追加します

# java environment variables export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib # maven environment variables export M2_HOME=/usr/local/maven/maven3 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

JAVA_HOME with M2_HOME個々の設置場所によって異なります

  1. プロファイルを更新する
source /etc/profile
  1. セットアップが成功したことを確認します
mvn -v

画像-20200222192045954



上記の内容は成功を示しています