🐥
WSL1でjavaコンテナ作り
下記の実践、そのままになります
ただし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