dockerでJavaのHello Worldを実行するまで

題名の通りです。
とりあえずdockerでJavaを動かしてみたい人向けです。
最近dockerを学び始めたけどこんなに便利なものがあったんだなぁ。。。

前提

dockerはインストール済みとしています。
してない方は以下よりどうぞ

Docker Hub
会員登録しないとダウンロードできないみたいですね。

手順

作業ディレクトリを用意&移動

まぁこの辺は適当に
$ mkdir docker_java8 && cd docker_java8

HelloWorld.javaを作成

$ touch HelloWorld.java

public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World!!");
   }
}

docker-compose.ymlを作成して実行

$ touch docker-compose.yml

version: "3"
services:
  hello_java:
    image: "openjdk:8"
    volumes:
      - "$PWD:/usr/src/myapp"
    working_dir: "/usr/src/myapp"
    command: bash -c "javac HelloWorld.java && java HelloWorld"

$ docker-compose upを実行して
以下の様な出力が出れば完了 f:id:hido_dev:20181217234833p:plain

docker コマンドで実行

もしくは以下のコマンドで一発 docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:8 bash -c "javac HelloWorld.java && java HelloWorld"