はじめてkotlinを勉強しようと思ったのですが、macにkotlinコンパイラをいれるのも少し嫌だったので、docker composeで一式つくりました。
ビルドツールを使用することは想定しておらず、kotlinの簡単な文法を動かしながら確認できる環境を用意するというコンセプトのもと作成してます。
必要な方は参考にしてみてください。
できたもの
./docker-compose.yml
version: "3.7"
services:
java:
build: ./docker/java
tty: true
volumes:
- ./src:/usr/local/src
./docker/java/Dockerfile
FROM openjdk:13-slim
RUN apt-get update && apt-get install -y git \
unzip \
zip \
curl \
vim
WORKDIR /usr/local/src
RUN curl -s https://get.sdkman.io | bash
RUN /bin/bash -l -c "chmod a+x $HOME/.sdkman/bin/sdkman-init.sh;$HOME/.sdkman/bin/sdkman-init.sh;sdk install kotlin"
CMD ["/bin/bash"]
ディレクトリ構成は以下のようになってます
.
├── docker
│ └── java
│ └── Dockerfile
├── docker-compose.yml
└── src
└── test.kt
つかいかた
下準備
docker-compose.ymlを配置したディレクトリで、以下のコマンドを実行するのみです。
$ docker-compose build
$ docker-compose up
うごかす
実際に、test.kt
をコンパイルして、java
コマンドで実行します。
コンパイルする対象は./src/test.kt
です。
fun main(args: Array<String>) {
println("Hello, World!")
}
コンテナに入って、コンパイルして、実行します。
$ docker-compose exec java bash
root@3b62768acd0b:/usr/local/src# kotlinc test.kt -include-runtime -d test.jar
OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
root@3b62768acd0b:/usr/local/src# java -jar test.jar
Hello, World!
root@3b62768acd0b:/usr/local/src#
-Xverify:none
は駄目だというwarningがでてしまいますが、コンパイルができて、javaコマンドで実行することができました。
さらに、/usr/local/src
をボリュームマウントしてますので、コンパイル後にできたjarファイルは、ホストマシンのファイルシステムでも確認可能です。
.
├── docker
│ └── java
│ └── Dockerfile
├── docker-compose.yml
└── src
├── test.jar
└── test.kt
さいごに
これから勉強を進めていく中で、ビルドツール使いたくなったり、いろいろ不都合がでてくるかもしれませんが、一旦環境が整ったということで、どんどん勉強していきたいです!