LoginSignup
4
1

More than 3 years have passed since last update.

Dockerを使ってMacホスト上でUbuntuのMavenビルドするまでの手順

Posted at

諸事情あって、Ubuntu上でのMavenビルドを確認したくて、環境を作るため、初めてのDockerに手を出しました。その時の覚え書きです。
なお、私はUbuntuは触ってみたことがある程度で、あまり詳しくはありません。LPIC Level1は昔持ってたので(現在は期限切れ)、初歩的なコマンドはわかります。という程度です。

環境

ホスト側

ツールなど 環境
macOS Mojave 10.14.5
Docker 19.03.8

Dockerコンテナ側

ツールなど 環境
Ubuntu 18.0.4(Latest)
Apache Maven 3.6.3
JDK AdoptOpenJDK 11.0.6 2020-01-14

Dockerインストール

まずMacにDockerをインストールします。

1. Dockerアカウント作成

その前に、Dockerの公式サイトでアカウントを作成します。

2. Docker Desktop for Macをインストール

Docker Desktop for Macというアプリをインストールします。

インストール後、下記コマンドでバージョンが表示されればOK.

$ docker --version

UbuntuをDockerに構築

1. Ubuntuイメージをpull

$ docker pull ubuntu

pull出来たかは以下のコマンドで確認。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              4e5021d210f6        5 days ago          64.2MB

2. Ubuntuの起動とセットアップ

2.1 コンテナを起動

$ docker run -it -d --name ubuntuLatest ubuntu:latest

--nameのあとの名称は任意です。
ubuntu:latestは、docker imagesコマンドで表示された、{REPOSITORY}:{TAG}としています。
Ubuntuのイメージが1つしかなければ、{TAG}の部分は不要かも。

2.2 コンテナに入る/抜ける

$ docker exec -it ubuntuLatest /bin/bash

これでバッシュコマンドが打てる状態で繋がります。
抜けるときは、

$ exit

でOK.
もう一度入るときは、

$ docker exec -it ubuntuLatest bash

とする。

3. apt-getのアップデート

いろいろパッケージをインストールするのに必要なのでまずはこれから。やっておかないと何もインストールできませんでした。

$ apt-get update

また、add-apt-repositoryなどが動くように以下を実行して、再度apt-get updateしておく。

$ apt-get install -y software-properties-common
$ apt-get update

4. vimをインストール

なにかエディタ入れておかないと何も出来ないので、vimでも入れておきます。
お好みで良いでしょう。

$ apt-get install -y vim

5. SSHをインストール

Gitに繋ぐのに、SSH鍵が必要だったので、入れました。

$ apt-get install -y ssh

Ubuntuにビルド環境をセットアップ

1. AdaoptOpenJDK 11のインストール

$ add-apt-repository --yes ppa:rpardini/adoptopenjdk
$ apt-get update
$ apt-get install -y adoptopenjdk-11-installer

1行目のコマンドで、AdoptOpenJDKのリポジトリを追加しています。
リポジトリを追加したら、apt-get updateが必要みたいです。

JDKインストール後、java --versionとやって以下のように出ればOKです。

/# java --version
openjdk 11.0.6 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)

2. Maven

$ apt-get install -y maven

インストール後に、mvn -vと打ってバージョンが表示されればOK。

3. Git

$ apt-get install -y git

インストール後に、git --versionと打ってバージョンが表示されればOK.
また、グローバルユーザー設定をしておく。

$ git config --global user.name [任意のユーザ名]
$ git config --global user.email [任意のメールアドレス]

4. Git接続用SSH鍵生成

$ cd ~
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa

あとは通常通りに設定を行う。

公開鍵の内容のコピーは、cat id_rsa.pubとやってコピーすれば良い。
Gitへの公開鍵の登録をお忘れなく。

Githubの場合、以下で接続確認ができる。

$ ssh -T git@github.com

yesと打つのを忘れずに。

5. Gitからクローンしてビルド

任意のフォルダを作ってそこに移動してから、

$ git clone [SSH用のリポジトリURL]

Githubなどから、SSH用のURLをコピーしてくるのを間違えないように。

クローンしてきたらプロジェクトフォルダに移動してから、任意のブランチをチェックアウト。

$ cd [project dir name]
$ git checkout -b branch_name origin/branch_name

ビルド実行。

$ mvn install

おめでとうございます。
Dockerコンテナ内のUbuntuでmavenビルドが出来るようになりました。

ステップ数は長いけど、結構単純なことの繰り返しなので、それほど難しくないように思います。
でも、どこかに、Mavenビルド用のイメージはいろいろ転がっていそうですよね(汗)

これを社内で共有しようと思ったら、Dockerリポジトリに公開すればいいのかしら??

その他のコマンド

1. コンテナを停止する

$ docker stop ubuntuLatest

2. コンテナを再起動する

$ docker start ubuntuLatest

3. Dockerのコンテナリストを確認する

起動中のコンテナ表示。

$ docker ps

停止中のコンテナ表示。

$ docker ps -a

4. コンテナを削除する

コンテナは停止していること。

$ docker rm [CONTAINER ID]

[CONTAINER ID]は、docker ps -aで確認したもの。

5. イメージを削除する

$ docker rmi [IMAGE ID]

[IMAGE ID]は、docker imagesで確認したもの。

注意

コマンドにすべてsudoをつけてませんが、Dockerのコンテナに普通に繋ぐと、rootユーザーになるからです。
通常の(Dockerでない)Ubuntuでやる場合は、sudoが必要かもしれません。

なお、root以外ユーザーを追加してそのユーザーでコンテナに入る方法は、いくつかググって試したのですが成功しませんでした。
仕方なくrootユーザーのままで作業しましたが、用途によってはだめでしょうね^^;

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1