コンテナ

Mavenのオフシャルコンテナを使ってmvnコマンドをすぐ使えるようにする

Mavenは、DockerHubでオフシャルコンテナを公開しています。
このコンテナを使って、LinuxのDocker環境で、いつでもmvnを実行できるようにしました。

下記のようなシェルを$HOME/bin/mvnに準備して事項権限をつけます。

$ cat ~/bin/mvn
#! /bin/bash
docker run -it --rm \
-u $(id -u):$(id -g) \
-v $HOME/.m2:/var/maven/.m2 \
-v "$(pwd)":/usr/src/mymaven \
-e MAVEN_CONFIG=/var/maven/.m2 \
-w /usr/src/mymaven \
maven:3.6.3-jdk-11-openj9 \
mvn -Duser.home=/var/maven $*
$ chmod +x ~/bin/mvn

あとは、普通にmvnコマンドを実行するだけです。
JDKやmavenのインストールは不要です。
初回は、下記のようにコンテナをダウンロードします。

$ mvn -v
Unable to find image 'maven:3.6.3-jdk-11-openj9' locally
3.6.3-jdk-11-openj9: Pulling from library/maven
a1125296b23d: Already exists
3c742a4a0f38: Already exists
4c5ea3b32996: Already exists
1b4be91ead68: Already exists
262049cebf1b: Pull complete
5ad2d62fe9e8: Pull complete
ff29c42fd76a: Pull complete
dbb173a54a45: Pull complete
eef609065721: Pull complete
Digest: sha256:4d35cebbd4eb96206e83391b08f1a92f25464eed1c558bec624a44bbc269feba
Status: Downloaded newer image for maven:3.6.3-jdk-11-openj9
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/share/maven
Java version: 11.0.8, vendor: AdoptOpenJDK, runtime: /opt/java/openjdk
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.19.76-linuxkit", arch: "amd64", family: "unix"
$ type java
-bash: type: java: 見つかりませ
$

コメント

タイトルとURLをコピーしました