docs: add build step to Gitea Action and Dockerfile
Build and Push MkDocs Site / build-and-push (push) Successful in 13s

This commit is contained in:
rewa81 committed 2026-01-11 18:20:28 +01:00
1 parent 1f95e3b2a6
commit ea1a4375e2
1 file changed
+45 -37
+45 -37
View File
@@ -33,77 +33,86 @@ sdk install kotlin
## Docker Setup (Oracle Linux 10)
Hier ist ein Beispiel für ein Dockerfile, das auf **Oracle Linux 10** basiert und **Java 25** sowie **Kotlin** installiert.
Hier ist ein Beispiel für ein Dockerfile, das auf **Oracle Linux 10** basiert. Es verwendet einen **Multi-Stage Build**, um erst die Anwendung zu bauen und dann ein schlankes Runtime-Image zu erstellen.
```dockerfile
# Basis-Image: Oracle Linux 10
FROM oraclelinux:10
# --- Stage 1: Build ---
FROM oraclelinux:10 AS builder
# Metadaten
LABEL maintainer="rwcloud.ch"
LABEL description="Kotlin Development Environment on Oracle Linux 10 with Java 25"
RUN dnf -y install tar gzip unzip curl && dnf clean all
# System-Updates und Installation von Abhängigkeiten
RUN dnf -y update && \
dnf -y install tar gzip unzip curl && \
dnf clean all
# Installation von Java 25 (Beispielpfad/Download)
# Hinweis: Da Java 25 zum Erstellungszeitpunkt noch neu ist,
# muss hier ggf. die URL angepasst werden.
# Java 25 für den Build
RUN curl -L -o /tmp/openjdk.tar.gz https://download.java.net/java/GA/jdk25/archive/openjdk-25_linux-x64_bin.tar.gz && \
mkdir -p /usr/java && \
tar -xzf /tmp/openjdk.tar.gz -C /usr/java && \
rm /tmp/openjdk.tar.gz
# Umgebungsvariablen setzen
ENV JAVA_HOME=/usr/java/jdk-25
ENV PATH=$JAVA_HOME/bin:$PATH
# Kotlin Compiler installieren
ENV KOTLIN_VERSION=2.1.0
RUN curl -L -o /tmp/kotlin-compiler.zip https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip && \
unzip /tmp/kotlin-compiler.zip -d /opt && \
rm /tmp/kotlin-compiler.zip
WORKDIR /build
COPY . .
ENV PATH=$PATH:/opt/kotlinc/bin
# Build der Applikation (angenommen es wird Gradle verwendet)
# Falls kein Wrapper vorhanden ist, müsste Gradle hier installiert werden
RUN ./gradlew build --no-daemon
# --- Stage 2: Runtime ---
FROM oraclelinux:10
RUN dnf -y install tar gzip && dnf clean all
# Java 25 Runtime
RUN curl -L -o /tmp/openjdk.tar.gz https://download.java.net/java/GA/jdk25/archive/openjdk-25_linux-x64_bin.tar.gz && \
mkdir -p /usr/java && \
tar -xzf /tmp/openjdk.tar.gz -C /usr/java && \
rm /tmp/openjdk.tar.gz
ENV JAVA_HOME=/usr/java/jdk-25
ENV PATH=$JAVA_HOME/bin:$PATH
# Arbeitsverzeichnis
WORKDIR /app
# Beispiel-Anwendung kopieren (falls vorhanden)
# COPY . /app
# Nur die gebaute JAR aus dem Builder-Stage kopieren
COPY --from=builder /build/build/libs/*.jar app.jar
# Test der Installation
RUN java -version && kotlinc -version
CMD ["bash"]
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
```
---
## Gitea Action (CI/CD)
Um das obige Docker-Image automatisch zu bauen und in eine Registry zu pushen, kannst du folgende Gitea Action (`.gitea/workflows/build-kotlin-image.yml`) verwenden.
Um die Applikation automatisch zu bauen und das Docker-Image zu erstellen, kannst du folgende Gitea Action (`.gitea/workflows/build-and-deploy.yml`) verwenden. In diesem Beispiel nutzen wir die Action auch für den Test und Build vor dem Docker-Schritt.
```yaml
name: Build and Push Kotlin Image
name: Build and Push Kotlin App
on:
push:
branches:
- main
paths:
- 'Dockerfile'
- '.gitea/workflows/**'
jobs:
build-and-push:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'oracle'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Build with Gradle
run: ./gradlew build
- name: Set up Docker Buildx
uses: actions/setup-buildx-action@v3
@@ -114,12 +123,11 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITEA_TOKEN }}
- name: Build and Push
- name: Build and Push Docker Image
uses: actions/docker-build-push-action@v5
with:
context: .
push: true
tags: |
gitea.rwcloud.ch/${{ github.repository }}/kotlin-dev:latest
gitea.rwcloud.ch/${{ github.repository }}/kotlin-dev:ol10-java25
gitea.rwcloud.ch/${{ github.repository }}/kotlin-app:latest
```