🐥

WSL1でjavaコンテナ作り

2022/02/10に公開

下記の実践、そのままになります
https://qiita.com/A-Kira/items/0dda255e00771f556e2a

ただしWSL1.Xでの実行なので2点ほど調整が必須でした。

  • export DOCKER_HOST=tcp://localhost:2375
    および、DockerのSettingからExpose daemon on tcp://localhost:2375 without TLSのチェック
  • volumeがそのままのパスでマウントできない(エラーでませんでした)
    • 原因はWSL1用のパス指定が必要だった。
    • "/C/Private/container...."みたいな書き出しを行うとパスが通りました。
konny@localhost:/mnt/c/Private/container/test_java_container$ tree .
.
├── README.md
├── docker
│   └── java
│       └── Dockerfile
├── docker-compose.yml
└── server
    └── src
        ├── Main.class
        └── Main.java

4 directories, 5 files

konny@localhost:/mnt/c/Private/container/test_java_container$ docker-compose up -d
Creating network "test_java_container_default" with the default driver
Creating test_java_container_java_1 ... done
konny@localhost:/mnt/c/Private/container/test_java_container$ docker-compose exec java bash
root@b99c16b9e0ce:/usr/src# ls -l
total 1
-rwxr-xr-x 1 root root 414 Feb 10 07:55 Main.class
-rwxr-xr-x 1 root root 117 Dec 27 08:23 Main.java
root@b99c16b9e0ce:/usr/src# javac Main.java
root@b99c16b9e0ce:/usr/src# ls -l
total 1
-rwxr-xr-x 1 root root 414 Feb 10 07:56 Main.class
-rwxr-xr-x 1 root root 117 Dec 27 08:23 Main.java

root@b99c16b9e0ce:/usr/src# java Main
Hello World!
version: '3.6'
services:
  java:
    build: ./docker/java
    ports:
      - 8080:8080
    tty: true
    volumes:
      - /C/Private/container/test_java_container/server/src:/usr/src

残課題:この書き方だと環境ごとに書き分けられないので、分けられるようにしてみた。
書き分けができないか少し見てみたところ、起動引数で調整ができることがわかった。
docker-compose --env-file ./local.env up -d

DOCKER_HOST=tcp://localhost:2375
LOCAL_PATH=/C/Private/container/test_java_container/server/src
version: '3.6'
services:
  java:
    build: ./docker/java
    ports:
      - 8080:8080
    tty: true
    volumes:
      - ${LOCAL_PATH}:/usr/src

Discussion