├── examples └── build-jar │ ├── .gitignore │ ├── hello.kt │ └── README.md ├── Kotlin-logo.png ├── tools ├── settings.gradle.kts ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── release_notifier │ ├── src │ │ └── main │ │ │ └── kotlin │ │ │ └── dev │ │ │ └── schlaubi │ │ │ └── kotlin_gradle │ │ │ └── notifier │ │ │ ├── Config.kt │ │ │ ├── GithubIssue.kt │ │ │ ├── GithubRelease.kt │ │ │ └── ReleaseNotifier.kt │ ├── build.gradle.kts │ └── checked_versions.json ├── build.gradle.kts ├── readme_generator │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── dev │ │ └── schlaubi │ │ └── kotlin_docker │ │ └── readme_generator │ │ └── Generator.kt ├── src │ └── main │ │ └── kotlin │ │ └── dev │ │ └── schlaubi │ │ └── kotlin_gradle │ │ ├── KotlinVersion.kt │ │ └── GithubKotlinVersion.kt ├── gradlew.bat └── gradlew ├── .idea ├── vcs.xml ├── kotlinc.xml ├── discord.xml ├── .gitignore ├── kotlinScripting.xml ├── GradleUpdaterPlugin.xml ├── modules.xml ├── aws.xml ├── misc.xml ├── docker-kotlin.iml ├── gradle.xml ├── jarRepositories.xml ├── libraries-with-intellij-classes.xml └── uiDesigner.xml ├── debian └── Dockerfile ├── slim └── Dockerfile ├── oracle └── Dockerfile ├── .gitignore ├── alpine └── Dockerfile ├── LICENSE ├── .github └── workflows │ ├── version_notifier.yaml │ ├── release.yaml.template │ └── release.yaml ├── scripts └── build.sh ├── templates └── README.md ├── versions.yml └── README.md /examples/build-jar/.gitignore: -------------------------------------------------------------------------------- 1 | *.jar 2 | -------------------------------------------------------------------------------- /examples/build-jar/hello.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | println("Hello World!") 3 | } 4 | -------------------------------------------------------------------------------- /Kotlin-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DRSchlaubi/docker-kotlin/HEAD/Kotlin-logo.png -------------------------------------------------------------------------------- /tools/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "tools" 2 | 3 | include("release_notifier") 4 | include("readme_generator") 5 | -------------------------------------------------------------------------------- /tools/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DRSchlaubi/docker-kotlin/HEAD/tools/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /examples/build-jar/README.md: -------------------------------------------------------------------------------- 1 | # Building an app into a JAR file 2 | 3 | Run `docker container run -v $(pwd):/app --rm schlaubiboy/kotlin kotlinc /app -include-runtime -d /app/hello.jar` 4 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/discord.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /.idea/kotlinScripting.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /tools/release_notifier/src/main/kotlin/dev/schlaubi/kotlin_gradle/notifier/Config.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle.notifier 2 | 3 | import dev.schlaubi.envconf.environment 4 | 5 | object Config { 6 | val GITHUB_TOKEN by environment 7 | } 8 | -------------------------------------------------------------------------------- /tools/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /.idea/GradleUpdaterPlugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/aws.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /tools/release_notifier/src/main/kotlin/dev/schlaubi/kotlin_gradle/notifier/GithubIssue.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle.notifier 2 | 3 | import kotlinx.serialization.Serializable 4 | 5 | @JvmRecord 6 | @Serializable 7 | data class GithubIssue( 8 | val title: String, 9 | val body: String, 10 | val labels: List 11 | ) 12 | -------------------------------------------------------------------------------- /tools/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | kotlin("jvm") version "1.8.10" 3 | kotlin("plugin.serialization") version "1.8.10" 4 | } 5 | 6 | group = "dev.schlaubi" 7 | version = "1.0-SNAPSHOT" 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | dependencies { 14 | api("org.jetbrains.kotlinx", "kotlinx-serialization-json", "1.4.1") 15 | } 16 | -------------------------------------------------------------------------------- /tools/readme_generator/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | kotlin("jvm") 3 | application 4 | } 5 | 6 | group = "dev.schlaubi" 7 | version = "1.0-SNAPSHOT" 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | dependencies { 14 | implementation(project(":")) 15 | } 16 | 17 | application { 18 | mainClass.set("dev.schlaubi.kotlin_docker.readme_generator.GeneratorKt") 19 | } 20 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tools/src/main/kotlin/dev/schlaubi/kotlin_gradle/KotlinVersion.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle 2 | 3 | import kotlinx.serialization.SerialName 4 | import kotlinx.serialization.Serializable 5 | 6 | @Serializable 7 | data class SavedKotlinVersion( 8 | val id: Int, 9 | val name: String, 10 | @SerialName("html_url") 11 | val htmlUrl: String, 12 | @SerialName("prerelease") 13 | val preRelease: Boolean, 14 | @SerialName("download_url") 15 | val downloadUrl: String 16 | ) 17 | -------------------------------------------------------------------------------- /.idea/docker-kotlin.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /tools/release_notifier/src/main/kotlin/dev/schlaubi/kotlin_gradle/notifier/GithubRelease.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle.notifier 2 | 3 | import kotlinx.serialization.SerialName 4 | import kotlinx.serialization.Serializable 5 | 6 | @Serializable 7 | @JvmRecord 8 | data class GithubRelease( 9 | @SerialName("tag_name") 10 | val tagName: String, 11 | val name: String, 12 | val body: String, 13 | @SerialName("prerelease") 14 | val preRelease: Boolean, 15 | val draft: Boolean 16 | ) { 17 | constructor(name: String, body: String, preRelease: Boolean) : this(name, name, body, preRelease, true) 18 | } 19 | -------------------------------------------------------------------------------- /tools/src/main/kotlin/dev/schlaubi/kotlin_gradle/GithubKotlinVersion.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle 2 | 3 | import kotlinx.serialization.SerialName 4 | import kotlinx.serialization.Serializable 5 | 6 | @Serializable 7 | data class GithubKotlinVersion( 8 | val id: Int, 9 | val name: String, 10 | @SerialName("html_url") 11 | val htmlUrl: String, 12 | val prerelease: Boolean, 13 | val draft: Boolean, 14 | val assets: List 15 | ) { 16 | @Serializable 17 | data class Asset( 18 | val name: String, 19 | @SerialName("browser_download_url") 20 | val browserDownloadUrl: String 21 | ) 22 | 23 | fun toSavedKotlinVersion(compiler: Asset): SavedKotlinVersion = SavedKotlinVersion( 24 | id, 25 | name, 26 | htmlUrl, 27 | prerelease, 28 | compiler.browserDownloadUrl 29 | ) 30 | } 31 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /debian/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG SOURCE 2 | 3 | FROM $SOURCE 4 | 5 | ARG BUILD_DATE 6 | ARG GITHUB_SHA 7 | ARG TAG 8 | ARG COMPILER_URL 9 | 10 | LABEL org.label-schema.build-date=$BUILD_DATE \ 11 | org.label-schema.description="Kotlin docker images built upon official openjdk images" \ 12 | org.label-schema.name="kotlin" \ 13 | org.label-schema.schema-version="1.0.0-rc1" \ 14 | org.label-schema.usage="https://github.com/DRSchlaubi/docker-kotlin/blob/master/README.md" \ 15 | org.label-schema.vcs-url="https://github.com/DRSchlaubi/docker-kotlin" \ 16 | org.label-schema.vcs-ref=$GITHUB_SHA \ 17 | org.label-schema.vendor="DRSchlaubi" \ 18 | org.label-schema.version=$TAG 19 | 20 | WORKDIR /usr/lib 21 | RUN apt update && apt install -y --no-install-recommends wget unzip 22 | RUN wget -q $COMPILER_URL 23 | RUN unzip kotlin-compiler-*.zip 24 | RUN rm kotlin-compiler-*.zip 25 | RUN rm -f kotlinc/bin/*.bat 26 | 27 | ENV PATH $PATH:/usr/lib/kotlinc/bin 28 | 29 | CMD ["kotlinc"] 30 | -------------------------------------------------------------------------------- /slim/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG SOURCE 2 | 3 | FROM $SOURCE 4 | 5 | ARG BUILD_DATE 6 | ARG GITHUB_SHA 7 | ARG TAG 8 | ARG COMPILER_URL 9 | 10 | LABEL org.label-schema.build-date=$BUILD_DATE \ 11 | org.label-schema.description="Kotlin docker images built upon official openjdk images" \ 12 | org.label-schema.name="kotlin" \ 13 | org.label-schema.schema-version="1.0.0-rc1" \ 14 | org.label-schema.usage="https://github.com/DRSchlaubi/docker-kotlin/blob/master/README.md" \ 15 | org.label-schema.vcs-url="https://github.com/DRSchlaubi/docker-kotlin" \ 16 | org.label-schema.vcs-ref=$GITHUB_SHA \ 17 | org.label-schema.vendor="DRSchlaubi" \ 18 | org.label-schema.version=$TAG 19 | 20 | RUN apk add --no-cache bash 21 | RUN apk add --no-cache -t build-dependencies wget 22 | WORKDIR /usr/lib 23 | RUN wget -q $COMPILER_URL 24 | RUN unzip kotlin-compiler-*.zip 25 | RUN rm kotlin-compiler-*.zip 26 | RUN rm -f kotlinc/bin/*.bat 27 | RUN apk del --no-cache build-dependencies 28 | 29 | ENV PATH $PATH:/usr/lib/kotlinc/bin 30 | 31 | CMD ["kotlinc"] 32 | -------------------------------------------------------------------------------- /oracle/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG SOURCE 2 | 3 | FROM $SOURCE 4 | 5 | ARG BUILD_DATE 6 | ARG GITHUB_SHA 7 | ARG TAG 8 | ARG COMPILER_URL 9 | 10 | LABEL org.label-schema.build-date=$BUILD_DATE \ 11 | org.label-schema.description="Kotlin docker images built upon official openjdk images" \ 12 | org.label-schema.name="kotlin" \ 13 | org.label-schema.schema-version="1.0.0-rc1" \ 14 | org.label-schema.usage="https://github.com/DRSchlaubi/docker-kotlin/blob/master/README.md" \ 15 | org.label-schema.vcs-url="https://github.com/DRSchlaubi/docker-kotlin" \ 16 | org.label-schema.vcs-ref=$GITHUB_SHA \ 17 | org.label-schema.vendor="DRSchlaubi" \ 18 | org.label-schema.version=$TAG 19 | 20 | RUN curl -o unzip.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/unzip-6.0-21.el7.x86_64.rpm 21 | RUN rpm -i unzip.rpm 22 | WORKDIR /usr/lib 23 | RUN curl -L -o kotlin.zip $COMPILER_URL 24 | RUN unzip kotlin.zip 25 | RUN rm kotlin.zip 26 | RUN rm -f kotlinc/bin/*.bat 27 | RUN rm -f unzip.rpm 28 | 29 | ENV PATH $PATH:/usr/lib/kotlinc/bin 30 | 31 | CMD ["kotlinc"] 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/kotlin,gradle 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=kotlin,gradle 4 | 5 | ### Kotlin ### 6 | # Compiled class file 7 | *.class 8 | 9 | # Log file 10 | *.log 11 | 12 | # BlueJ files 13 | *.ctxt 14 | 15 | # Mobile Tools for Java (J2ME) 16 | .mtj.tmp/ 17 | 18 | # Package Files # 19 | *.jar 20 | *.war 21 | *.nar 22 | *.ear 23 | *.zip 24 | *.tar.gz 25 | *.rar 26 | 27 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 28 | hs_err_pid* 29 | 30 | ### Gradle ### 31 | .gradle 32 | build/ 33 | 34 | # Ignore Gradle GUI config 35 | gradle-app.setting 36 | 37 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) 38 | !gradle-wrapper.jar 39 | 40 | # Cache of project 41 | .gradletasknamecache 42 | 43 | # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 44 | # gradle/wrapper/gradle-wrapper.properties 45 | 46 | ### Gradle Patch ### 47 | **/build/ 48 | 49 | # End of https://www.toptal.com/developers/gitignore/api/kotlin,gradle 50 | -------------------------------------------------------------------------------- /alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG SOURCE 2 | 3 | FROM $SOURCE 4 | 5 | ARG BUILD_DATE 6 | ARG GITHUB_SHA 7 | ARG TAG 8 | ARG COMPILER_URL 9 | 10 | LABEL org.label-schema.build-date=$BUILD_DATE \ 11 | org.label-schema.description="Kotlin docker images built upon official openjdk images" \ 12 | org.label-schema.name="kotlin" \ 13 | org.label-schema.schema-version="1.0.0-rc1" \ 14 | org.label-schema.usage="https://github.com/DRSchlaubi/docker-kotlin/blob/master/README.md" \ 15 | org.label-schema.vcs-url="https://github.com/DRSchlaubi/docker-kotlin" \ 16 | org.label-schema.vcs-ref=$GITHUB_SHA \ 17 | org.label-schema.vendor="DRSchlaubi" \ 18 | org.label-schema.version=$TAG 19 | 20 | RUN apk add --no-cache bash && \ 21 | apk add --no-cache -t build-dependencies wget && \ 22 | cd /usr/lib && \ 23 | wget -q "$COMPILER_URL" && \ 24 | unzip kotlin-compiler-*.zip && \ 25 | rm kotlin-compiler-*.zip && \ 26 | rm -f kotlinc/bin/*.bat && \ 27 | apk del --no-cache build-dependencies 28 | 29 | ENV PATH $PATH:/usr/lib/kotlinc/bin 30 | 31 | CMD ["kotlinc"] 32 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-2020 Zenika, 2021 Michael Rittmeister 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/version_notifier.yaml: -------------------------------------------------------------------------------- 1 | on: 2 | schedule: 3 | - cron: "0 * * * *" 4 | 5 | jobs: 6 | run: 7 | name: "Check for new Kotlin releases" 8 | runs-on: ubuntu-20.04 9 | steps: 10 | - uses: actions/checkout@v2 11 | with: 12 | ref: "main" 13 | - name: Setup Java JDK 16 14 | uses: actions/setup-java@v2.1.0 15 | with: 16 | distribution: 'adopt' 17 | java-version: 16 18 | - name: Gradle (RUN) 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | run: cd tools && gradle :release_notifier:run 22 | - name: Update Previous file 23 | uses: stefanzweifel/git-auto-commit-action@v4 24 | with: 25 | commit_message: Update checked Kotlin version store 26 | commit_author: Michael Rittmeister 27 | file_pattern: tools/release_notifier/checked_versions.json 28 | - name: Release 29 | uses: softprops/action-gh-release@v1 30 | with: 31 | body: "Kotlin Release:" 32 | draft: true 33 | tag_name: v${{ needs.build_metadata.outputs.version }} 34 | release_name: ${{ needs.build_metadata.outputs.version }} 35 | -------------------------------------------------------------------------------- /tools/release_notifier/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | kotlin("jvm") 3 | kotlin("plugin.serialization") 4 | application 5 | } 6 | 7 | group = "dev.schlaubi" 8 | version = "1.0-SNAPSHOT" 9 | 10 | repositories { 11 | mavenCentral() 12 | maven("https://schlaubi.jfrog.io/artifactory/envconf") 13 | } 14 | 15 | dependencies { 16 | implementation(project(":")) 17 | implementation("dev.schlaubi", "stdx-envconf", "1.2.1") 18 | implementation(platform("io.ktor:ktor-bom:2.2.3")) 19 | implementation("io.ktor", "ktor-client-core") 20 | implementation("io.ktor", "ktor-client-okhttp") 21 | implementation("io.ktor", "ktor-client-content-negotiation") 22 | implementation("io.ktor", "ktor-serialization-kotlinx-json") 23 | implementation("io.ktor", "ktor-client-auth") 24 | } 25 | 26 | application { 27 | mainClass.set("dev.schlaubi.kotlin_gradle.notifier.ReleaseNotifierKt") 28 | } 29 | 30 | tasks { 31 | withType { 32 | kotlinOptions { 33 | jvmTarget = "16" 34 | freeCompilerArgs = listOf("-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi","-Xopt-in=kotlin.io.pathExperimentalPathApi") 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | REPO="schlaubiboy/kotlin" 4 | GHCR_REPO="ghcr.io/drschlaubi/docker-kotlin/kotlin" 5 | PUSH_TAG="$REPO:$TAG" 6 | 7 | docker image build \ 8 | --pull \ 9 | -t "$PUSH_TAG" \ 10 | --build-arg SOURCE="$SOURCE" \ 11 | --build-arg GITHUB_SHA="$GITHUB_SHA" \ 12 | --build-arg TAG="$TAG" \ 13 | --build-arg COMPILER_URL="$COMPILER_URL" \ 14 | --build-arg BUILD_DATE="$(date -Ins --utc)" \ 15 | "$BUILD_CONTEXT" 16 | 17 | echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_ACCOUNT" --password-stdin 18 | docker image push "$PUSH_TAG" 19 | docker image push "$REPO" # push latest 20 | 21 | if echo "$ADDITIONAL_TAG" | grep 'jdk'; then 22 | echo Tagging "$ADDITIONAL_TAG" 23 | docker image tag "$PUSH_TAG" "$REPO:$ADDITIONAL_TAG" 24 | docker image push "$ADDITIONAL_TAG" 25 | elif [ "$ROOT_TAG" = "true" ]; then 26 | if echo "$ADDITIONAL_TAG" | grep '-'; then 27 | echo Tagging "$ADDITIONAL_TAG" 28 | docker image tag "$PUSH_TAG" "$REPO:$ADDITIONAL_TAG" 29 | docker image push "$REPO:$ADDITIONAL_TAG" 30 | else # only push root to ghcr 31 | docker image tag "$PUSH_TAG" "$REPO:$ADDITIONAL_TAG" 32 | docker image tag "$PUSH_TAG" "$GHCR_REPO:$ADDITIONAL_TAG" 33 | docker image push "$REPO:$ADDITIONAL_TAG" 34 | echo "$GHCR_PASSWORD" | docker login ghcr.io --username "$GHCR_ACCOUNT" --password-stdin 35 | docker image push "$GHCR_REPO:$ADDITIONAL_TAG" 36 | fi 37 | fi 38 | -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 | [![Docker Build Status](https://github.com/DRSchlaubi/docker-kotlin/actions/workflows/release.yaml/badge.svg)](https://github.com/DRSchlaubi/docker-kotlin/actions/workflows/release.yaml) [![Docker Pulls](https://img.shields.io/docker/pulls/schlaubiboy/kotlin)](https://hub.docker.com/r/schlaubiboy/kotlin/) 2 | 3 | # Contents 4 | - [Image Variants](#image-variants) 5 | - [What is Kotlin?](#what-is-kotlin) 6 | - [Usage](#usage) 7 | - [Reference](#reference) 8 | - [Versions](#supported-tags-and-respective-dockerfile-links) 9 | 10 | ### Image Variants 11 | Each image gets build for 3 JDK versions JDK8, JDK11 and JDK16 (or the latest release at the time of publishing the image). 12 | For each JDK version 4 different base images are used: oracle, debian, alpine, alpineslim 13 | 14 | Therefore, the tag names are structured in this way: 15 | schlaubiboy/kotlin:-jdk\-\ 16 | 17 | The default jdk version is always the latest at the time of publishing the image so right not it is 16 18 | 19 | The default os is oracle so unlike other os images the oracle image is called `schlaubiboy/kotlin:-jdk` 20 | 21 | 22 | ### What is Kotlin? 23 | 24 | Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework. 25 | 26 | See https://en.wikipedia.org/wiki/Kotlin_%28programming_language%29 for more information. 27 | 28 | ![Kotlin Logo](https://github.com/DRSchlaubi/docker-kotlin/raw/main/Kotlin-logo.png) 29 | 30 | ### Usage 31 | 32 | Start using the Kotlin REPL : `docker container run -it --rm schlaubiboy/kotlin` 33 | 34 | See Kotlin compiler version : `docker container run -it --rm schlaubiboy/kotlin kotlinc -version` 35 | 36 | See Kotlin compiler help : `docker container run -it --rm schlaubiboy/kotlin kotlinc -help` 37 | 38 | ### Reference 39 | 40 | * Kotlin website : https://kotlinlang.org 41 | 42 | * Where to file issues : https://github.com/DRSchlaubi/docker-kotlin/issues 43 | 44 | * Maintained by : https://schlau.bi 45 | 46 | ### Supported tags and respective `Dockerfile` links 47 | 48 | %RELEASES% 49 | 50 | ### 1.4.20 and earlier 51 | For 1.4 and earlier please check this repository: https://github.com/Zenkikat/docker-kotlin 52 | -------------------------------------------------------------------------------- /tools/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /.idea/libraries-with-intellij-classes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 64 | 65 | -------------------------------------------------------------------------------- /tools/release_notifier/src/main/kotlin/dev/schlaubi/kotlin_gradle/notifier/ReleaseNotifier.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_gradle.notifier 2 | 3 | import dev.schlaubi.kotlin_gradle.GithubKotlinVersion 4 | import dev.schlaubi.kotlin_gradle.SavedKotlinVersion 5 | import io.ktor.client.* 6 | import io.ktor.client.call.* 7 | import io.ktor.client.plugins.* 8 | import io.ktor.client.plugins.contentnegotiation.* 9 | import io.ktor.client.request.* 10 | import io.ktor.client.statement.* 11 | import io.ktor.http.* 12 | import io.ktor.serialization.kotlinx.json.* 13 | import kotlinx.serialization.decodeFromString 14 | import kotlinx.serialization.encodeToString 15 | import kotlinx.serialization.json.Json 16 | import kotlin.io.path.Path 17 | import kotlin.io.path.readText 18 | import kotlin.io.path.writeText 19 | 20 | const val RELEASES_ENDPOINT = "https://api.github.com/repos/JetBrains/kotlin/releases" 21 | const val REPOSITORY_ENDPOINT = "https://api.github.com/repos/DRSchlaubi/docker-kotlin/" 22 | const val CREATE_ISSUE_ENDPOINT = "${REPOSITORY_ENDPOINT}issues" 23 | const val CREATE_RELEASE_ENDPOINT = "${REPOSITORY_ENDPOINT}releases" 24 | 25 | val json = Json { 26 | ignoreUnknownKeys = true 27 | } 28 | 29 | val client = HttpClient { 30 | install(ContentNegotiation) { 31 | json(json) 32 | } 33 | 34 | defaultRequest { 35 | header(HttpHeaders.Authorization, "token ${Config.GITHUB_TOKEN}") 36 | } 37 | } 38 | 39 | suspend fun main() { 40 | println("Fetching releases") 41 | findVersions().forEach { (_, name, url, preRelease, downloadUrl) -> 42 | createIssue(name, url, preRelease, downloadUrl) 43 | createReleaseDraft(name.substringAfterLast(" "), url, preRelease) 44 | } 45 | 46 | client.close() 47 | } 48 | 49 | private suspend fun createReleaseDraft( 50 | name: String, 51 | url: String, 52 | preRelease: Boolean 53 | ) { 54 | postJson(CREATE_RELEASE_ENDPOINT, GithubRelease(name, """Kotlin release: $url""", preRelease)) 55 | } 56 | 57 | private suspend fun createIssue( 58 | name: String, 59 | url: String, 60 | preRelease: Boolean, 61 | downloadUrl: String 62 | ) { 63 | println("Creating issue for release: $name") 64 | postJson( 65 | CREATE_ISSUE_ENDPOINT, GithubIssue( 66 | "⬆️ New Kotlin release $name", 67 | "[Kotlin version $name]($url) has been released.${if (preRelease) "\n⚠ This is a pre-release." else ""}\nCompiler: $downloadUrl", 68 | listOf("Kotlin release") 69 | ) 70 | ) 71 | } 72 | 73 | private suspend fun postJson(url: String, body: Any) { 74 | val response = client.post(url) { 75 | contentType(ContentType.Application.Json) 76 | 77 | setBody(body) 78 | } 79 | 80 | println("Github API responded: ${response.bodyAsText()} Code: ${response.status} Headers: ${response.headers}") 81 | } 82 | 83 | private suspend fun findVersions(): List { 84 | val versions = client.get(RELEASES_ENDPOINT) 85 | .body>() 86 | .asSequence() 87 | .filter { !it.draft } 88 | .filter { it.assets.isNotEmpty() } 89 | .mapNotNull { 90 | val compiler = it.assets.firstOrNull { version -> 91 | version.name.contains("kotlin-compiler-") 92 | } ?: run { 93 | System.err.println("Could not find compiler asset for version ${it.name}. Available assets: ${it.assets}") 94 | return@mapNotNull null 95 | } 96 | 97 | it.toSavedKotlinVersion(compiler) 98 | }.toList() 99 | 100 | println("Update release files") 101 | val file = Path("checked_versions.json") 102 | val previousVersions = Json.decodeFromString>(file.readText()) 103 | file.writeText(json.encodeToString(versions)) 104 | 105 | return versions.filter { it !in previousVersions }.also { 106 | println("Found unhandled releases: $it") 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /tools/readme_generator/src/main/kotlin/dev/schlaubi/kotlin_docker/readme_generator/Generator.kt: -------------------------------------------------------------------------------- 1 | package dev.schlaubi.kotlin_docker.readme_generator 2 | 3 | import dev.schlaubi.kotlin_gradle.SavedKotlinVersion 4 | import kotlinx.serialization.decodeFromString 5 | import kotlinx.serialization.json.Json 6 | import kotlin.io.path.* 7 | 8 | 9 | fun main() { 10 | val root = Path(System.getProperty("user.dir")).absolute().parent.parent 11 | val tools = root / "tools" 12 | val readmeTemplate = root / "templates" / "README.md" 13 | val readme = root / "README.md" 14 | val versionsFile = tools / "release_notifier" / "checked_versions.json" 15 | 16 | val versionsRaw = 17 | Json.decodeFromString>(versionsFile.readText()) 18 | 19 | val output = buildString { 20 | val versions = versionsRaw.dropLast(17) // First 17 releases are on old repo and already handled 21 | // Header 22 | append("#### Versions") 23 | appendLine() 24 | versions.forEach { 25 | append("- [").append(it.versionName).append("](#") 26 | .append(it.versionName.lowercase().replace(".", "")) 27 | .append(')') 28 | appendLine() 29 | } 30 | 31 | appendLine() 32 | 33 | versions.forEach { 34 | val name = it.versionName 35 | append("### $name") 36 | appendLine() 37 | 38 | singleVariant( 39 | true, 40 | name, 41 | "oracle/Dockerfile", 42 | "https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile", 43 | "openjdk", 44 | "-oracle" 45 | ) 46 | appendLine() 47 | singleVariant( 48 | true, 49 | name, 50 | "alpine/Dockerfile", 51 | "https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile", 52 | "adoptopenjdk", 53 | "alpine", 54 | "alpine" 55 | ) 56 | appendLine() 57 | singleVariant( 58 | true, 59 | name, 60 | "debian/Dockerfile", 61 | "https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile", 62 | "adoptopenjdk", 63 | "debian", 64 | "debian" 65 | ) 66 | appendLine() 67 | singleVariant( 68 | true, 69 | name, 70 | "slim/Dockerfile", 71 | "https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile", 72 | "adoptopenjdk", 73 | "alpineslim", 74 | "slim" 75 | ) 76 | appendLine() 77 | } 78 | } 79 | 80 | val template = readmeTemplate.readText() 81 | val newReadme = template.replace("%RELEASES%", output) 82 | readme.writeText(newReadme) 83 | } 84 | 85 | private fun StringBuilder.singleVariant( 86 | default: Boolean, 87 | version: String, 88 | dockerfileName: String, 89 | dockerfile: String, 90 | vendor: String, 91 | from: String, 92 | variantClassifier: String? = null 93 | ) { 94 | append("- ") 95 | if (default) { 96 | codeBlock(version) 97 | } 98 | 99 | listOf("jdk16", "jdk11", "jdk8").forEach { jdkVersion -> 100 | append(", ") 101 | codeBlock(version + "-" + jdkVersion + (variantClassifier?.let { "-$it" } ?: "")) 102 | } 103 | append(" ") 104 | 105 | singleVariantSuffix(dockerfileName, dockerfile, vendor, from) 106 | } 107 | 108 | private fun StringBuilder.codeBlock(content: String) = append('`').append(content).append('`') 109 | 110 | private fun StringBuilder.singleVariantSuffix( 111 | dockerfileName: String, 112 | dockerfile: String, 113 | vendor: String, 114 | from: String 115 | ) { 116 | append('[') 117 | .append(dockerfileName) 118 | .append("](") 119 | .append(dockerfile) 120 | .append(") Based on ") 121 | .append(vendor) 122 | .append(' ') 123 | .codeBlock(from) 124 | .append(" tags") 125 | } 126 | 127 | val SavedKotlinVersion.versionName: String 128 | get() = name.substringAfter("Kotlin ") -------------------------------------------------------------------------------- /.github/workflows/release.yaml.template: -------------------------------------------------------------------------------- 1 | # Because GH actions sucks we can't have anchors therefore pls run this command to generate actions script 2 | # Please edit release.yaml.template instead of release.yaml and then run this command 3 | # Cmd: yq eval 'explode(.)' .\release.yaml.template > release.yaml 4 | # Tool installation docs: https://mikefarah.gitbook.io/yq/#install 5 | on: 6 | push: 7 | branches: 8 | - main 9 | release: 10 | types: 11 | - published 12 | jobs: 13 | update_readme: 14 | name: "Update Readme" 15 | runs-on: ubuntu-20.04 16 | steps: 17 | - uses: actions/checkout@v2 18 | with: 19 | ref: "main" 20 | - uses: actions/cache@v1 21 | with: 22 | path: | 23 | tools/.gradle/caches 24 | tools/build 25 | tools/readme_generator/.gradle/caches 26 | tools/readme_generator/build 27 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} 28 | restore-keys: | 29 | ${{ runner.os }}-gradle- 30 | - name: Setup Java JDK 16 31 | uses: actions/setup-java@v2.1.0 32 | with: 33 | distribution: 'adopt' 34 | java-version: 16 35 | - name: Gradle (RUN) 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | run: cd tools && gradle :readme_generator:run 39 | - name: Update Readme file 40 | uses: stefanzweifel/git-auto-commit-action@v4 41 | with: 42 | commit_message: Update README.md 43 | commit_author: Michael Rittmeister 44 | file_pattern: README.md 45 | jdk16: 46 | name: "Build on JDK 16" 47 | runs-on: ubuntu-20.04 48 | if: &release_if "github.event_name == 'release'" 49 | env: 50 | JDK_TAG: 16 51 | ROOT_TAG: true 52 | GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }} 53 | GHCR_ACCOUNT: ${{ secrets.GHCR_ACCOUNT }} 54 | steps: &release_version 55 | - uses: actions/checkout@v2 56 | - name: Retrieve version 57 | id: get_version 58 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 59 | - name: Build Oracle 60 | env: &release_env 61 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 62 | ADDITIONAL_TAG: ${{ steps.get_version.outputs.VERSION}} 63 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}" 64 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 65 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 66 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 67 | SOURCE: "openjdk:${{env.JDK_TAG}}-oracle" 68 | BUILD_CONTEXT: "oracle" 69 | run: &build_image "scripts/build.sh" 70 | - name: Build with Debian 71 | env: 72 | <<: *release_env 73 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-debian" 74 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-debian" 75 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:debian" 76 | BUILD_CONTEXT: "debian" 77 | run: *build_image 78 | - name: Build with Alpine 79 | env: 80 | <<: *release_env 81 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-alpine" 82 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine" 83 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-alpine" 84 | BUILD_CONTEXT: "alpine" 85 | run: *build_image 86 | - name: Build slim 87 | env: 88 | <<: *release_env 89 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-slim" 90 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine-slim" 91 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-slim" 92 | BUILD_CONTEXT: "slim" 93 | run: *build_image 94 | jdk11: 95 | name: "Build on JDK 11" 96 | runs-on: ubuntu-20.04 97 | if: *release_if 98 | env: 99 | ROOT_TAG: false 100 | JDK_TAG: 11 101 | steps: *release_version 102 | jdk8: 103 | name: "Build on JDK 1.8" 104 | runs-on: ubuntu-20.04 105 | if: *release_if 106 | env: 107 | ROOT_TAG: false 108 | JDK_TAG: 8 109 | steps: *release_version -------------------------------------------------------------------------------- /tools/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 4 | # Copyright 2015 the original author or authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | ## 21 | ## Gradle start up script for UN*X 22 | ## 23 | ############################################################################## 24 | 25 | # Attempt to set APP_HOME 26 | # Resolve links: $0 may be a link 27 | PRG="$0" 28 | # Need this for relative symlinks. 29 | while [ -h "$PRG" ] ; do 30 | ls=`ls -ld "$PRG"` 31 | link=`expr "$ls" : '.*-> \(.*\)$'` 32 | if expr "$link" : '/.*' > /dev/null; then 33 | PRG="$link" 34 | else 35 | PRG=`dirname "$PRG"`"/$link" 36 | fi 37 | done 38 | SAVED="`pwd`" 39 | cd "`dirname \"$PRG\"`/" >/dev/null 40 | APP_HOME="`pwd -P`" 41 | cd "$SAVED" >/dev/null 42 | 43 | APP_NAME="Gradle" 44 | APP_BASE_NAME=`basename "$0"` 45 | 46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 | 49 | # Use the maximum available, or set MAX_FD != -1 to use that value. 50 | MAX_FD="maximum" 51 | 52 | warn () { 53 | echo "$*" 54 | } 55 | 56 | die () { 57 | echo 58 | echo "$*" 59 | echo 60 | exit 1 61 | } 62 | 63 | # OS specific support (must be 'true' or 'false'). 64 | cygwin=false 65 | msys=false 66 | darwin=false 67 | nonstop=false 68 | case "`uname`" in 69 | CYGWIN* ) 70 | cygwin=true 71 | ;; 72 | Darwin* ) 73 | darwin=true 74 | ;; 75 | MINGW* ) 76 | msys=true 77 | ;; 78 | NONSTOP* ) 79 | nonstop=true 80 | ;; 81 | esac 82 | 83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 | 85 | 86 | # Determine the Java command to use to start the JVM. 87 | if [ -n "$JAVA_HOME" ] ; then 88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 89 | # IBM's JDK on AIX uses strange locations for the executables 90 | JAVACMD="$JAVA_HOME/jre/sh/java" 91 | else 92 | JAVACMD="$JAVA_HOME/bin/java" 93 | fi 94 | if [ ! -x "$JAVACMD" ] ; then 95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 96 | 97 | Please set the JAVA_HOME variable in your environment to match the 98 | location of your Java installation." 99 | fi 100 | else 101 | JAVACMD="java" 102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 103 | 104 | Please set the JAVA_HOME variable in your environment to match the 105 | location of your Java installation." 106 | fi 107 | 108 | # Increase the maximum file descriptors if we can. 109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 110 | MAX_FD_LIMIT=`ulimit -H -n` 111 | if [ $? -eq 0 ] ; then 112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 113 | MAX_FD="$MAX_FD_LIMIT" 114 | fi 115 | ulimit -n $MAX_FD 116 | if [ $? -ne 0 ] ; then 117 | warn "Could not set maximum file descriptor limit: $MAX_FD" 118 | fi 119 | else 120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 121 | fi 122 | fi 123 | 124 | # For Darwin, add options to specify how the application appears in the dock 125 | if $darwin; then 126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 127 | fi 128 | 129 | # For Cygwin or MSYS, switch paths to Windows format before running java 130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then 131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 133 | 134 | JAVACMD=`cygpath --unix "$JAVACMD"` 135 | 136 | # We build the pattern for arguments to be converted via cygpath 137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 138 | SEP="" 139 | for dir in $ROOTDIRSRAW ; do 140 | ROOTDIRS="$ROOTDIRS$SEP$dir" 141 | SEP="|" 142 | done 143 | OURCYGPATTERN="(^($ROOTDIRS))" 144 | # Add a user-defined pattern to the cygpath arguments 145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 147 | fi 148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 149 | i=0 150 | for arg in "$@" ; do 151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 153 | 154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 156 | else 157 | eval `echo args$i`="\"$arg\"" 158 | fi 159 | i=`expr $i + 1` 160 | done 161 | case $i in 162 | 0) set -- ;; 163 | 1) set -- "$args0" ;; 164 | 2) set -- "$args0" "$args1" ;; 165 | 3) set -- "$args0" "$args1" "$args2" ;; 166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;; 167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 172 | esac 173 | fi 174 | 175 | # Escape application args 176 | save () { 177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 178 | echo " " 179 | } 180 | APP_ARGS=`save "$@"` 181 | 182 | # Collect all arguments for the java command, following the shell quoting and substitution rules 183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 184 | 185 | exec "$JAVACMD" "$@" 186 | -------------------------------------------------------------------------------- /tools/release_notifier/checked_versions.json: -------------------------------------------------------------------------------- 1 | [{"id":164739215,"name":"Kotlin 2.0.20-Beta2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.20-Beta2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.20-Beta2/kotlin-compiler-2.0.20-Beta2.zip"},{"id":161002445,"name":"Kotlin 2.0.20-Beta1","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.20-Beta1","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.20-Beta1/kotlin-compiler-2.0.20-Beta1.zip"},{"id":156545424,"name":"Kotlin 2.0.0","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0/kotlin-compiler-2.0.0.zip"},{"id":155199971,"name":"Kotlin 2.0.0-RC3","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-RC3","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-RC3/kotlin-compiler-2.0.0-RC3.zip"},{"id":154516435,"name":"1.9.24","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.24","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.24/kotlin-compiler-1.9.24.zip"},{"id":153016117,"name":"Kotlin 2.0.0-RC2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-RC2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-RC2/kotlin-compiler-2.0.0-RC2.zip"},{"id":150296377,"name":"Kotlin 2.0.0-RC1","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-RC1","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-RC1/kotlin-compiler-2.0.0-RC1.zip"},{"id":147446183,"name":"Kotlin 2.0.0-Beta5","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta5","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-Beta5/kotlin-compiler-2.0.0-Beta5.zip"},{"id":145121812,"name":"Kotlin 1.9.23","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.23","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"},{"id":141693948,"name":"Kotlin 2.0.0-Beta4","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta4","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-Beta4/kotlin-compiler-2.0.0-Beta4.zip"},{"id":137398341,"name":"Kotlin 2.0.0-Beta3","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta3","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-Beta3/kotlin-compiler-2.0.0-Beta3.zip"},{"id":134775690,"name":"Kotlin 1.9.22","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.22","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.22/kotlin-compiler-1.9.22.zip"},{"id":133988770,"name":"Kotlin 2.0.0-Beta2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-Beta2/kotlin-compiler-2.0.0-Beta2.zip"},{"id":131180439,"name":"Kotlin 1.9.21","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.21","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.21/kotlin-compiler-1.9.21.zip"},{"id":129215791,"name":"Kotlin 2.0.0-Beta1","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta1","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v2.0.0-Beta1/kotlin-compiler-2.0.0-Beta1.zip"},{"id":127306830,"name":"Kotlin 1.9.20","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.20","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.20/kotlin-compiler-1.9.20.zip"},{"id":126389574,"name":"Kotlin 1.9.20-RC2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.20-RC2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.20-RC2/kotlin-compiler-1.9.20-RC2.zip"},{"id":124548866,"name":"Kotlin 1.9.20-RC","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.20-RC","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.20-RC/kotlin-compiler-1.9.20-RC.zip"},{"id":121809857,"name":"Kotlin 1.9.20-Beta2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.20-Beta2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.20-Beta2/kotlin-compiler-1.9.20-Beta2.zip"},{"id":120159586,"name":"Kotlin 1.9.20-Beta","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.20-Beta","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.20-Beta/kotlin-compiler-1.9.20-Beta.zip"},{"id":118369278,"name":"Kotlin 1.9.10","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.10","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.10/kotlin-compiler-1.9.10.zip"},{"id":111211812,"name":"Kotlin 1.9.0","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.0","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.0/kotlin-compiler-1.9.0.zip"},{"id":109083150,"name":"Kotlin 1.9.0-RC","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.0-RC","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.0-RC/kotlin-compiler-1.9.0-RC.zip"},{"id":107810742,"name":"Kotlin 1.8.22","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.22","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.22/kotlin-compiler-1.8.22.zip"},{"id":103904218,"name":"Kotlin 1.9.0-Beta","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.9.0-Beta","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.9.0-Beta/kotlin-compiler-1.9.0-Beta.zip"},{"id":100749657,"name":"Kotlin 1.8.21","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.21","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.21/kotlin-compiler-1.8.21.zip"},{"id":97455071,"name":"Kotlin 1.8.20","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.20","prerelease":false,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.20/kotlin-compiler-1.8.20.zip"},{"id":96611322,"name":"Kotlin 1.8.20-RC2","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.20-RC2","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.20-RC2/kotlin-compiler-1.8.20-RC2.zip"},{"id":94905653,"name":"Kotlin 1.8.20-RC","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.20-RC","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.20-RC/kotlin-compiler-1.8.20-RC.zip"},{"id":91702287,"name":"Kotlin 1.8.20-Beta","html_url":"https://github.com/JetBrains/kotlin/releases/tag/v1.8.20-Beta","prerelease":true,"download_url":"https://github.com/JetBrains/kotlin/releases/download/v1.8.20-Beta/kotlin-compiler-1.8.20-Beta.zip"}] -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /versions.yml: -------------------------------------------------------------------------------- 1 | Versions: 2 | - Version: "1.4.20" 3 | CompilerURL: https://github.com/JetBrains/kotlin/releases/download/v1.4.20-M2/kotlin-compiler-1.4.20-M2.zip 4 | JDKVersions: 5 | - JDKVersion: "12" 6 | Base: 7 | Base: oracle 8 | AdditionalTags: 9 | - "1.4.20" 10 | - 1.4.20-M2 11 | - 1.4.20-M2-jdk12 12 | Variants: 13 | - Base: alpine 14 | AdditionalTags: 15 | - 1.4.20-M2-alpine 16 | - 1.4.20-M2-jdk12-alpine 17 | AdditionalRepositories: 18 | - Repository: zenika/alpine-kotlin 19 | Tags: 20 | - "1.4.20" 21 | - 1.4.20-M2 22 | - 1.4.20-jdk12 23 | - 1.4.20-M2-jdk12 24 | - JDKVersion: "11" 25 | Base: 26 | Base: debian 27 | AdditionalTags: 28 | - 1.4.20-M2-jdk11 29 | Variants: 30 | - Base: slim 31 | AdditionalTags: 32 | - 1.4.20-slim 33 | - 1.4.20-M2-slim 34 | - 1.4.20-M2-jdk11-slim 35 | - JDKVersion: "10" 36 | Base: 37 | Base: debian 38 | AdditionalTags: 39 | - 1.4.20-M2-jdk10 40 | Variants: 41 | - Base: slim 42 | AdditionalTags: 43 | - 1.4.20-M2-jdk10-slim 44 | - JDKVersion: "8" 45 | Base: 46 | Base: debian 47 | AdditionalTags: 48 | - 1.4.20-M2-jdk8 49 | Variants: 50 | - Base: alpine 51 | AdditionalTags: 52 | - 1.4.20-M2-jdk8-alpine 53 | AdditionalRepositories: 54 | - Repository: zenika/alpine-kotlin 55 | Tags: 56 | - 1.4.20-jdk8 57 | - 1.4.20-M2-jdk8 58 | - Base: slim 59 | AdditionalTags: 60 | - 1.4.20-jdk8-slim 61 | - 1.4.20-M2-jdk8-slim 62 | - Version: "1.4" 63 | CompilerURL: https://github.com/JetBrains/kotlin/releases/download/v1.4.10/kotlin-compiler-1.4.10.zip 64 | JDKVersions: 65 | - JDKVersion: "12" 66 | Base: 67 | Base: oracle 68 | AdditionalTags: 69 | - latest 70 | - "1" 71 | - jdk12 72 | - 1-jdk12 73 | - 1.4.10-jdk12 74 | Variants: 75 | - Base: alpine 76 | AdditionalTags: 77 | - alpine 78 | - 1-alpine 79 | - jdk12-alpine 80 | - 1-jdk12-alpine 81 | - 1.4.10-jdk12-alpine 82 | AdditionalRepositories: 83 | - Repository: zenika/alpine-kotlin 84 | Tags: 85 | - jdk12 86 | - 1-jdk12 87 | - 1.4-jdk12 88 | - 1.4.10-jdk12 89 | - JDKVersion: "11" 90 | Base: 91 | Base: debian 92 | AdditionalTags: 93 | - jdk11 94 | - 1-jdk11 95 | - 1.4 96 | - 1.4.10 97 | - 1.4.10-jdk11 98 | Variants: 99 | - Base: slim 100 | AdditionalTags: 101 | - slim 102 | - 1-slim 103 | - jdk11-slim 104 | - 1-jdk11-slim 105 | - 1.4-slim 106 | - 1.4.10-slim 107 | - 1.4.10-jdk11-slim 108 | - JDKVersion: "10" 109 | Base: 110 | Base: debian 111 | AdditionalTags: 112 | - jdk10 113 | - 1-jdk10 114 | - 1.4.10-jdk10 115 | Variants: 116 | - Base: slim 117 | AdditionalTags: 118 | - jdk10-slim 119 | - 1-jdk10-slim 120 | - 1.4.10-jdk10-slim 121 | - JDKVersion: "8" 122 | Base: 123 | Base: debian 124 | AdditionalTags: 125 | - jdk8 126 | - 1-jdk8 127 | - 1.4.10-jdk8 128 | Variants: 129 | - Base: alpine 130 | AdditionalTags: 131 | - jdk8-alpine 132 | - 1-jdk8-alpine 133 | - 1.4-alpine 134 | - 1.4.10-alpine 135 | - 1.4.10-jdk8-alpine 136 | AdditionalRepositories: 137 | - Repository: zenika/alpine-kotlin 138 | Tags: 139 | - jdk8 140 | - 1-jdk8 141 | - "1.4" 142 | - "1.4.10" 143 | - 1.4-jdk8 144 | - 1.4.10-jdk8 145 | - Base: slim 146 | AdditionalTags: 147 | - jdk8-slim 148 | - 1-jdk8-slim 149 | - 1.4.10-jdk8-slim 150 | - Version: "1.3" 151 | CompilerURL: https://github.com/JetBrains/kotlin/releases/download/v1.3.72/kotlin-compiler-1.3.72.zip 152 | JDKVersions: 153 | - JDKVersion: "12" 154 | Base: 155 | Base: oracle 156 | AdditionalTags: 157 | - "1.3" 158 | - "1.3.72" 159 | - 1.3.72-jdk12 160 | Variants: 161 | - Base: alpine 162 | AdditionalTags: 163 | - 1.3.72-jdk12-alpine 164 | AdditionalRepositories: 165 | - Repository: zenika/alpine-kotlin 166 | Tags: 167 | - latest 168 | - "1" 169 | - "1.3" 170 | - "1.3.72" 171 | - 1.3-jdk12 172 | - 1.3.72-jdk12 173 | - JDKVersion: "11" 174 | Base: 175 | Base: debian 176 | AdditionalTags: 177 | - 1.3.72-jdk11 178 | Variants: 179 | - Base: slim 180 | AdditionalTags: 181 | - 1.3-slim 182 | - 1.3.72-slim 183 | - 1.3.72-jdk11-slim 184 | - JDKVersion: "10" 185 | Base: 186 | Base: debian 187 | AdditionalTags: 188 | - 1.3.72-jdk10 189 | Variants: 190 | - Base: slim 191 | AdditionalTags: 192 | - 1.3.72-jdk10-slim 193 | - JDKVersion: "8" 194 | Base: 195 | Base: debian 196 | AdditionalTags: 197 | - 1.3.72-jdk8 198 | Variants: 199 | - Base: alpine 200 | AdditionalTags: 201 | - 1.3.72-jdk8-alpine 202 | - 1.3-alpine 203 | - 1.3.72-alpine 204 | AdditionalRepositories: 205 | - Repository: zenika/alpine-kotlin 206 | Tags: 207 | - 1.3-jdk8 208 | - 1.3.72-jdk8 209 | - Base: slim 210 | AdditionalTags: 211 | - 1.3.72-jdk8-slim 212 | - Version: "1.2" 213 | CompilerURL: https://github.com/JetBrains/kotlin/releases/download/v1.2.71/kotlin-compiler-1.2.71.zip 214 | JDKVersions: 215 | - JDKVersion: "12" 216 | Base: 217 | Base: oracle 218 | AdditionalTags: 219 | - "1.2" 220 | - "1.2.71" 221 | - 1.2.71-jdk12 222 | Variants: 223 | - Base: alpine 224 | AdditionalTags: 225 | - 1.2-alpine 226 | - 1.2.71-alpine 227 | - 1.2.71-jdk12-alpine 228 | AdditionalRepositories: 229 | - Repository: zenika/alpine-kotlin 230 | Tags: 231 | - "1.2" 232 | - "1.2.71" 233 | - 1.2-jdk12 234 | - 1.2.71-jdk12 235 | - JDKVersion: "11" 236 | Base: 237 | Base: debian 238 | AdditionalTags: 239 | - 1.2.71-jdk11 240 | Variants: 241 | - Base: slim 242 | AdditionalTags: 243 | - 1.2-slim 244 | - 1.2.71-slim 245 | - 1.2.71-jdk11-slim 246 | - JDKVersion: "10" 247 | Base: 248 | Base: debian 249 | AdditionalTags: 250 | - 1.2.71-jdk10 251 | Variants: 252 | - Base: slim 253 | AdditionalTags: 254 | - 1.2.71-jdk10-slim 255 | - JDKVersion: "8" 256 | Base: 257 | Base: debian 258 | AdditionalTags: 259 | - 1.2.71-jdk8 260 | Variants: 261 | - Base: alpine 262 | AdditionalTags: 263 | - 1.2.71-jdk8-alpine 264 | AdditionalRepositories: 265 | - Repository: zenika/alpine-kotlin 266 | Tags: 267 | - 1.2-jdk8 268 | - 1.2.71-jdk8 269 | - Base: slim 270 | AdditionalTags: 271 | - 1.2.71-jdk8-slim 272 | - Version: "1.1" 273 | CompilerURL: https://github.com/JetBrains/kotlin/releases/download/v1.1.61/kotlin-compiler-1.1.61.zip 274 | JDKVersions: 275 | - JDKVersion: "12" 276 | Base: 277 | Base: oracle 278 | AdditionalTags: 279 | - "1.1" 280 | - "1.1.61" 281 | - 1.1.61-jdk12 282 | Variants: 283 | - Base: alpine 284 | AdditionalTags: 285 | - 1.1-alpine 286 | - 1.1.61-alpine 287 | - 1.1.61-jdk12-alpine 288 | AdditionalRepositories: 289 | - Repository: zenika/alpine-kotlin 290 | Tags: 291 | - "1.1" 292 | - "1.1.61" 293 | - 1.1-jdk12 294 | - 1.1.61-jdk12 295 | - JDKVersion: "11" 296 | Base: 297 | Base: debian 298 | AdditionalTags: 299 | - 1.1.61-jdk11 300 | Variants: 301 | - Base: slim 302 | AdditionalTags: 303 | - 1.1-slim 304 | - 1.1.61-slim 305 | - 1.1.61-jdk11-slim 306 | - JDKVersion: "10" 307 | Base: 308 | Base: debian 309 | AdditionalTags: 310 | - 1.1.61-jdk10 311 | Variants: 312 | - Base: slim 313 | AdditionalTags: 314 | - 1.1.61-jdk10-slim 315 | - JDKVersion: "8" 316 | Base: 317 | Base: debian 318 | AdditionalTags: 319 | - 1.1.61-jdk8 320 | Variants: 321 | - Base: alpine 322 | AdditionalTags: 323 | - 1.1.61-jdk8-alpine 324 | AdditionalRepositories: 325 | - Repository: zenika/alpine-kotlin 326 | Tags: 327 | - 1.1-jdk8 328 | - 1.1.61-jdk8 329 | - Base: slim 330 | AdditionalTags: 331 | - 1.1.61-jdk8-slim -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | # Because GH actions sucks we can't have anchors therefore pls run this command to generate actions script 2 | # Please edit release.yaml.template instead of release.yaml and then run this command 3 | # Cmd: yq eval 'explode(.)' .\release.yaml.template > release.yaml 4 | # Tool installation docs: https://mikefarah.gitbook.io/yq/#install 5 | on: 6 | push: 7 | branches: 8 | - main 9 | release: 10 | types: 11 | - published 12 | jobs: 13 | update_readme: 14 | name: "Update Readme" 15 | runs-on: ubuntu-20.04 16 | steps: 17 | - uses: actions/checkout@v2 18 | with: 19 | ref: "main" 20 | - uses: actions/cache@v1 21 | with: 22 | path: | 23 | tools/.gradle/caches 24 | tools/build 25 | tools/readme_generator/.gradle/caches 26 | tools/readme_generator/build 27 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} 28 | restore-keys: | 29 | ${{ runner.os }}-gradle- 30 | - name: Setup Java JDK 16 31 | uses: actions/setup-java@v2.1.0 32 | with: 33 | distribution: 'adopt' 34 | java-version: 16 35 | - name: Gradle (RUN) 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | run: cd tools && gradle :readme_generator:run 39 | - name: Update Readme file 40 | uses: stefanzweifel/git-auto-commit-action@v4 41 | with: 42 | commit_message: Update README.md 43 | commit_author: Michael Rittmeister 44 | file_pattern: README.md 45 | jdk16: 46 | name: "Build on JDK 16" 47 | runs-on: ubuntu-20.04 48 | if: "github.event_name == 'release'" 49 | env: 50 | JDK_TAG: 16 51 | ROOT_TAG: true 52 | GHCR_PASSWORD: ${{ secrets.GHCR_PASSWORD }} 53 | GHCR_ACCOUNT: ${{ secrets.GHCR_ACCOUNT }} 54 | steps: 55 | - uses: actions/checkout@v2 56 | - name: Retrieve version 57 | id: get_version 58 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 59 | - name: Build Oracle 60 | env: 61 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 62 | ADDITIONAL_TAG: ${{ steps.get_version.outputs.VERSION}} 63 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}" 64 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 65 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 66 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 67 | SOURCE: "openjdk:${{env.JDK_TAG}}-oracle" 68 | BUILD_CONTEXT: "oracle" 69 | run: "scripts/build.sh" 70 | - name: Build with Debian 71 | env: 72 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 73 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 74 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 75 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 76 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-debian" 77 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-debian" 78 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:debian" 79 | BUILD_CONTEXT: "debian" 80 | run: "scripts/build.sh" 81 | - name: Build with Alpine 82 | env: 83 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 84 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 85 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 86 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 87 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-alpine" 88 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine" 89 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-alpine" 90 | BUILD_CONTEXT: "alpine" 91 | run: "scripts/build.sh" 92 | - name: Build slim 93 | env: 94 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 95 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 96 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 97 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 98 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-slim" 99 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine-slim" 100 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-slim" 101 | BUILD_CONTEXT: "slim" 102 | run: "scripts/build.sh" 103 | jdk11: 104 | name: "Build on JDK 11" 105 | runs-on: ubuntu-20.04 106 | if: "github.event_name == 'release'" 107 | env: 108 | ROOT_TAG: false 109 | JDK_TAG: 11 110 | steps: 111 | - uses: actions/checkout@v2 112 | - name: Retrieve version 113 | id: get_version 114 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 115 | - name: Build Oracle 116 | env: 117 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 118 | ADDITIONAL_TAG: ${{ steps.get_version.outputs.VERSION}} 119 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}" 120 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 121 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 122 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 123 | SOURCE: "openjdk:${{env.JDK_TAG}}-oracle" 124 | BUILD_CONTEXT: "oracle" 125 | run: "scripts/build.sh" 126 | - name: Build with Debian 127 | env: 128 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 129 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 130 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 131 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 132 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-debian" 133 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-debian" 134 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:debian" 135 | BUILD_CONTEXT: "debian" 136 | run: "scripts/build.sh" 137 | - name: Build with Alpine 138 | env: 139 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 140 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 141 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 142 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 143 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-alpine" 144 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine" 145 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-alpine" 146 | BUILD_CONTEXT: "alpine" 147 | run: "scripts/build.sh" 148 | - name: Build slim 149 | env: 150 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 151 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 152 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 153 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 154 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-slim" 155 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine-slim" 156 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-slim" 157 | BUILD_CONTEXT: "slim" 158 | run: "scripts/build.sh" 159 | jdk8: 160 | name: "Build on JDK 1.8" 161 | runs-on: ubuntu-20.04 162 | if: "github.event_name == 'release'" 163 | env: 164 | ROOT_TAG: false 165 | JDK_TAG: 8 166 | steps: 167 | - uses: actions/checkout@v2 168 | - name: Retrieve version 169 | id: get_version 170 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 171 | - name: Build Oracle 172 | env: 173 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 174 | ADDITIONAL_TAG: ${{ steps.get_version.outputs.VERSION}} 175 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}" 176 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 177 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 178 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 179 | SOURCE: "openjdk:${{env.JDK_TAG}}-oracle" 180 | BUILD_CONTEXT: "oracle" 181 | run: "scripts/build.sh" 182 | - name: Build with Debian 183 | env: 184 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 185 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 186 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 187 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 188 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-debian" 189 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-debian" 190 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:debian" 191 | BUILD_CONTEXT: "debian" 192 | run: "scripts/build.sh" 193 | - name: Build with Alpine 194 | env: 195 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 196 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 197 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 198 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 199 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-alpine" 200 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine" 201 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-alpine" 202 | BUILD_CONTEXT: "alpine" 203 | run: "scripts/build.sh" 204 | - name: Build slim 205 | env: 206 | KOTLIN_VERSION: ${{ steps.get_version.outputs.VERSION }} 207 | DOCKER_ACCOUNT: ${{ secrets.DOCKER_ACCOUNT }} 208 | DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} 209 | COMPILER_URL: "https://github.com/JetBrains/kotlin/releases/download/v${{ steps.get_version.outputs.VERSION }}/kotlin-compiler-${{ steps.get_version.outputs.VERSION }}.zip" 210 | ADDITIONAL_TAG: "${{ steps.get_version.outputs.VERSION }}-slim" 211 | SOURCE: "adoptopenjdk/openjdk${{env.JDK_TAG}}:alpine-slim" 212 | TAG: "${{ steps.get_version.outputs.VERSION }}-jdk${{env.JDK_TAG}}-slim" 213 | BUILD_CONTEXT: "slim" 214 | run: "scripts/build.sh" 215 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Docker Build Status](https://github.com/DRSchlaubi/docker-kotlin/actions/workflows/release.yaml/badge.svg)](https://github.com/DRSchlaubi/docker-kotlin/actions/workflows/release.yaml) [![Docker Pulls](https://img.shields.io/docker/pulls/schlaubiboy/kotlin)](https://hub.docker.com/r/schlaubiboy/kotlin/) 2 | 3 | # Contents 4 | - [Image Variants](#image-variants) 5 | - [What is Kotlin?](#what-is-kotlin) 6 | - [Usage](#usage) 7 | - [Reference](#reference) 8 | - [Versions](#supported-tags-and-respective-dockerfile-links) 9 | 10 | ### Image Variants 11 | Each image gets build for 3 JDK versions JDK8, JDK11 and JDK16 (or the latest release at the time of publishing the image). 12 | For each JDK version 4 different base images are used: oracle, debian, alpine, alpineslim 13 | 14 | Therefore, the tag names are structured in this way: 15 | schlaubiboy/kotlin:-jdk\-\ 16 | 17 | The default jdk version is always the latest at the time of publishing the image so right not it is 16 18 | 19 | The default os is oracle so unlike other os images the oracle image is called `schlaubiboy/kotlin:-jdk` 20 | 21 | 22 | ### What is Kotlin? 23 | 24 | Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework. 25 | 26 | See https://en.wikipedia.org/wiki/Kotlin_%28programming_language%29 for more information. 27 | 28 | ![Kotlin Logo](https://github.com/DRSchlaubi/docker-kotlin/raw/main/Kotlin-logo.png) 29 | 30 | ### Usage 31 | 32 | Start using the Kotlin REPL : `docker container run -it --rm schlaubiboy/kotlin` 33 | 34 | See Kotlin compiler version : `docker container run -it --rm schlaubiboy/kotlin kotlinc -version` 35 | 36 | See Kotlin compiler help : `docker container run -it --rm schlaubiboy/kotlin kotlinc -help` 37 | 38 | ### Reference 39 | 40 | * Kotlin website : https://kotlinlang.org 41 | 42 | * Where to file issues : https://github.com/DRSchlaubi/docker-kotlin/issues 43 | 44 | * Maintained by : https://schlau.bi 45 | 46 | ### Supported tags and respective `Dockerfile` links 47 | 48 | #### Versions 49 | - [2.0.20-Beta2](#2020-beta2) 50 | - [2.0.20-Beta1](#2020-beta1) 51 | - [2.0.0](#200) 52 | - [2.0.0-RC3](#200-rc3) 53 | - [1.9.24](#1924) 54 | - [2.0.0-RC2](#200-rc2) 55 | - [2.0.0-RC1](#200-rc1) 56 | - [2.0.0-Beta5](#200-beta5) 57 | - [1.9.23](#1923) 58 | - [2.0.0-Beta4](#200-beta4) 59 | - [2.0.0-Beta3](#200-beta3) 60 | - [1.9.22](#1922) 61 | - [2.0.0-Beta2](#200-beta2) 62 | 63 | ### 2.0.20-Beta2 64 | - `2.0.20-Beta2`, `2.0.20-Beta2-jdk16`, `2.0.20-Beta2-jdk11`, `2.0.20-Beta2-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 65 | - `2.0.20-Beta2`, `2.0.20-Beta2-jdk16-alpine`, `2.0.20-Beta2-jdk11-alpine`, `2.0.20-Beta2-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 66 | - `2.0.20-Beta2`, `2.0.20-Beta2-jdk16-debian`, `2.0.20-Beta2-jdk11-debian`, `2.0.20-Beta2-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 67 | - `2.0.20-Beta2`, `2.0.20-Beta2-jdk16-slim`, `2.0.20-Beta2-jdk11-slim`, `2.0.20-Beta2-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 68 | ### 2.0.20-Beta1 69 | - `2.0.20-Beta1`, `2.0.20-Beta1-jdk16`, `2.0.20-Beta1-jdk11`, `2.0.20-Beta1-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 70 | - `2.0.20-Beta1`, `2.0.20-Beta1-jdk16-alpine`, `2.0.20-Beta1-jdk11-alpine`, `2.0.20-Beta1-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 71 | - `2.0.20-Beta1`, `2.0.20-Beta1-jdk16-debian`, `2.0.20-Beta1-jdk11-debian`, `2.0.20-Beta1-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 72 | - `2.0.20-Beta1`, `2.0.20-Beta1-jdk16-slim`, `2.0.20-Beta1-jdk11-slim`, `2.0.20-Beta1-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 73 | ### 2.0.0 74 | - `2.0.0`, `2.0.0-jdk16`, `2.0.0-jdk11`, `2.0.0-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 75 | - `2.0.0`, `2.0.0-jdk16-alpine`, `2.0.0-jdk11-alpine`, `2.0.0-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 76 | - `2.0.0`, `2.0.0-jdk16-debian`, `2.0.0-jdk11-debian`, `2.0.0-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 77 | - `2.0.0`, `2.0.0-jdk16-slim`, `2.0.0-jdk11-slim`, `2.0.0-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 78 | ### 2.0.0-RC3 79 | - `2.0.0-RC3`, `2.0.0-RC3-jdk16`, `2.0.0-RC3-jdk11`, `2.0.0-RC3-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 80 | - `2.0.0-RC3`, `2.0.0-RC3-jdk16-alpine`, `2.0.0-RC3-jdk11-alpine`, `2.0.0-RC3-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 81 | - `2.0.0-RC3`, `2.0.0-RC3-jdk16-debian`, `2.0.0-RC3-jdk11-debian`, `2.0.0-RC3-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 82 | - `2.0.0-RC3`, `2.0.0-RC3-jdk16-slim`, `2.0.0-RC3-jdk11-slim`, `2.0.0-RC3-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 83 | ### 1.9.24 84 | - `1.9.24`, `1.9.24-jdk16`, `1.9.24-jdk11`, `1.9.24-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 85 | - `1.9.24`, `1.9.24-jdk16-alpine`, `1.9.24-jdk11-alpine`, `1.9.24-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 86 | - `1.9.24`, `1.9.24-jdk16-debian`, `1.9.24-jdk11-debian`, `1.9.24-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 87 | - `1.9.24`, `1.9.24-jdk16-slim`, `1.9.24-jdk11-slim`, `1.9.24-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 88 | ### 2.0.0-RC2 89 | - `2.0.0-RC2`, `2.0.0-RC2-jdk16`, `2.0.0-RC2-jdk11`, `2.0.0-RC2-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 90 | - `2.0.0-RC2`, `2.0.0-RC2-jdk16-alpine`, `2.0.0-RC2-jdk11-alpine`, `2.0.0-RC2-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 91 | - `2.0.0-RC2`, `2.0.0-RC2-jdk16-debian`, `2.0.0-RC2-jdk11-debian`, `2.0.0-RC2-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 92 | - `2.0.0-RC2`, `2.0.0-RC2-jdk16-slim`, `2.0.0-RC2-jdk11-slim`, `2.0.0-RC2-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 93 | ### 2.0.0-RC1 94 | - `2.0.0-RC1`, `2.0.0-RC1-jdk16`, `2.0.0-RC1-jdk11`, `2.0.0-RC1-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 95 | - `2.0.0-RC1`, `2.0.0-RC1-jdk16-alpine`, `2.0.0-RC1-jdk11-alpine`, `2.0.0-RC1-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 96 | - `2.0.0-RC1`, `2.0.0-RC1-jdk16-debian`, `2.0.0-RC1-jdk11-debian`, `2.0.0-RC1-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 97 | - `2.0.0-RC1`, `2.0.0-RC1-jdk16-slim`, `2.0.0-RC1-jdk11-slim`, `2.0.0-RC1-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 98 | ### 2.0.0-Beta5 99 | - `2.0.0-Beta5`, `2.0.0-Beta5-jdk16`, `2.0.0-Beta5-jdk11`, `2.0.0-Beta5-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 100 | - `2.0.0-Beta5`, `2.0.0-Beta5-jdk16-alpine`, `2.0.0-Beta5-jdk11-alpine`, `2.0.0-Beta5-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 101 | - `2.0.0-Beta5`, `2.0.0-Beta5-jdk16-debian`, `2.0.0-Beta5-jdk11-debian`, `2.0.0-Beta5-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 102 | - `2.0.0-Beta5`, `2.0.0-Beta5-jdk16-slim`, `2.0.0-Beta5-jdk11-slim`, `2.0.0-Beta5-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 103 | ### 1.9.23 104 | - `1.9.23`, `1.9.23-jdk16`, `1.9.23-jdk11`, `1.9.23-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 105 | - `1.9.23`, `1.9.23-jdk16-alpine`, `1.9.23-jdk11-alpine`, `1.9.23-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 106 | - `1.9.23`, `1.9.23-jdk16-debian`, `1.9.23-jdk11-debian`, `1.9.23-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 107 | - `1.9.23`, `1.9.23-jdk16-slim`, `1.9.23-jdk11-slim`, `1.9.23-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 108 | ### 2.0.0-Beta4 109 | - `2.0.0-Beta4`, `2.0.0-Beta4-jdk16`, `2.0.0-Beta4-jdk11`, `2.0.0-Beta4-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 110 | - `2.0.0-Beta4`, `2.0.0-Beta4-jdk16-alpine`, `2.0.0-Beta4-jdk11-alpine`, `2.0.0-Beta4-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 111 | - `2.0.0-Beta4`, `2.0.0-Beta4-jdk16-debian`, `2.0.0-Beta4-jdk11-debian`, `2.0.0-Beta4-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 112 | - `2.0.0-Beta4`, `2.0.0-Beta4-jdk16-slim`, `2.0.0-Beta4-jdk11-slim`, `2.0.0-Beta4-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 113 | ### 2.0.0-Beta3 114 | - `2.0.0-Beta3`, `2.0.0-Beta3-jdk16`, `2.0.0-Beta3-jdk11`, `2.0.0-Beta3-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 115 | - `2.0.0-Beta3`, `2.0.0-Beta3-jdk16-alpine`, `2.0.0-Beta3-jdk11-alpine`, `2.0.0-Beta3-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 116 | - `2.0.0-Beta3`, `2.0.0-Beta3-jdk16-debian`, `2.0.0-Beta3-jdk11-debian`, `2.0.0-Beta3-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 117 | - `2.0.0-Beta3`, `2.0.0-Beta3-jdk16-slim`, `2.0.0-Beta3-jdk11-slim`, `2.0.0-Beta3-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 118 | ### 1.9.22 119 | - `1.9.22`, `1.9.22-jdk16`, `1.9.22-jdk11`, `1.9.22-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 120 | - `1.9.22`, `1.9.22-jdk16-alpine`, `1.9.22-jdk11-alpine`, `1.9.22-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 121 | - `1.9.22`, `1.9.22-jdk16-debian`, `1.9.22-jdk11-debian`, `1.9.22-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 122 | - `1.9.22`, `1.9.22-jdk16-slim`, `1.9.22-jdk11-slim`, `1.9.22-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 123 | ### 2.0.0-Beta2 124 | - `2.0.0-Beta2`, `2.0.0-Beta2-jdk16`, `2.0.0-Beta2-jdk11`, `2.0.0-Beta2-jdk8` [oracle/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/oracle/Dockerfile) Based on openjdk `-oracle` tags 125 | - `2.0.0-Beta2`, `2.0.0-Beta2-jdk16-alpine`, `2.0.0-Beta2-jdk11-alpine`, `2.0.0-Beta2-jdk8-alpine` [alpine/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/alpine/Dockerfile) Based on adoptopenjdk `alpine` tags 126 | - `2.0.0-Beta2`, `2.0.0-Beta2-jdk16-debian`, `2.0.0-Beta2-jdk11-debian`, `2.0.0-Beta2-jdk8-debian` [debian/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/debian/Dockerfile) Based on adoptopenjdk `debian` tags 127 | - `2.0.0-Beta2`, `2.0.0-Beta2-jdk16-slim`, `2.0.0-Beta2-jdk11-slim`, `2.0.0-Beta2-jdk8-slim` [slim/Dockerfile](https://github.com/DRSchlaubi/docker-kotlin/blob/main/slim/Dockerfile) Based on adoptopenjdk `alpineslim` tags 128 | 129 | 130 | ### 1.4.20 and earlier 131 | For 1.4 and earlier please check this repository: https://github.com/Zenkikat/docker-kotlin 132 | --------------------------------------------------------------------------------