Création d'un environnement où kotlin peut être compilé avec cli avec docker et exécuté avec java

Je voulais étudier kotlin pour la première fois, mais je n'aimais pas avoir le compilateur kotlin sur mon mac, j'ai donc créé un ensemble avec docker compose. Je ne suppose pas que j'utiliserai un outil de construction, mais je l'ai créé sur la base du concept de préparation d'un environnement où vous pouvez vérifier tout en exécutant la syntaxe simple de kotlin. Si vous en avez besoin, veuillez vous y référer.

Ce qui a été fait

./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"]

La structure des répertoires est la suivante

.
├── docker
│   └── java
│       └── Dockerfile
├── docker-compose.yml
└── src
    └── test.kt

Comment utiliser

Préparation

Exécutez simplement la commande suivante dans le répertoire où se trouve docker-compose.yml.

$ docker-compose build
$ docker-compose up

Bouge toi

En fait, compilez test.kt et exécutez-le avec la commande java. La cible à compiler est . / Src / test.kt.

fun main(args: Array<String>) {
    println("Hello, World!")
}

Entrez dans le conteneur, compilez et exécutez.

$ 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#

Je reçois un avertissement indiquant que -Xverify: none est inutile, mais j'ai pu le compiler et l'exécuter avec la commande java.

De plus, comme / usr / local / src est monté sur volume, le fichier jar créé après la compilation peut également être confirmé dans le système de fichiers de la machine hôte.

.
├── docker
│   └── java
│       └── Dockerfile
├── docker-compose.yml
└── src
    ├── test.jar
    └── test.kt

à la fin

Au fur et à mesure que vous continuez à étudier, vous voudrez peut-être utiliser l'outil de construction et divers inconvénients peuvent survenir, mais une fois l'environnement prêt, je veux étudier de plus en plus!

Recommended Posts

Création d'un environnement où kotlin peut être compilé avec cli avec docker et exécuté avec java
Créez un environnement dans lequel CircleCI peut être exécuté localement avec Windows10 + WSL2 (Ubuntu) + Docker
Préparer un environnement de scraping avec Docker et Java
Représentez graphiquement les informations du capteur de Raspberry Pi et préparez un environnement qui peut être vérifié avec un navigateur Web
Problèmes facilement confondus avec Java et JavaScript
Syntaxe et conditions d'occurrence d'exception pouvant être utilisées lors de la comparaison avec null en Java
Créer un environnement où pip3 peut être utilisé avec CentOS7 + Python3
Créez un environnement de développement d'applications Web qui utilise Java, MySQL et Redis avec Docker CE pour Windows
Implémentation de machine à sous simple qui peut être utilisée avec copie
Outils d'analyse des performances et de diagnostic des pannes utilisables avec OpenJDK
Construction de Rails 6 et environnement PostgreSQL avec Docker
Créer un environnement avec Docker sur AWS
Installez Docker et créez un environnement d'exécution Java
Un mémo qui a installé Ubuntu 20.4 sur HP Z2 Mini G4 et créé un environnement d'apprentissage profond avec Python Docker
Créez un environnement ARM-cpu avec qemu sur mac et exécutez java [Résultat → Échec]
Créez un environnement Apache et Tomcat avec Docker. À propos, coopération Maven & Java
Vérifiez avec Java / Kotlin que les fichiers ne peuvent pas être écrits en UAC sous Windows
Rendre l'environnement SpringBoot1.5 + Gradle4.4 + Java8 + Docker compatible avec Java11
Créer un environnement de test E2E avec Selenium (Java)
Vous pouvez éliminer @Param avec Kotlin 1.1 et MyBatis 3.4.1+! !!
[Rails] Comment créer un environnement avec Docker
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
Créez un environnement Ruby2.7.x + Rails6.0.x + MySQL8.0.x avec Docker
Créer un environnement de test E2E avec Docker x Cypress
Jouez avec les nœuds de fonction Java qui peuvent utiliser Java avec Node-RED
[Note] Créez un environnement Java à partir de zéro avec docker
Je veux faire des transitions d'écran avec kotlin et java!
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Création d'un environnement Java léger qui s'exécute sur Docker
[Java 8] Méthode de tri par ordre alphabétique et par ordre de longueur de chaîne de caractères pouvant être utilisée dans les tests de codage
Nous avons amélioré Easy Markdown et préparé une image de docker qui peut être construite immédiatement.
Démarrez jnlp qui a expiré et ne peut plus être démarré sans utiliser Java Web Start
Comment changer la version Java et l'exécuter dans un environnement où Java ne peut pas être installé librement