added ci/cd
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
# ---- Build stage: compile and assemble a runnable distribution ----
|
||||
FROM eclipse-temurin:25-jdk AS build
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the Gradle wrapper and build scripts first so dependency resolution is
|
||||
# cached in its own layer and only re-runs when the build files change.
|
||||
COPY gradlew settings.gradle.kts build.gradle.kts ./
|
||||
COPY gradle ./gradle
|
||||
RUN chmod +x gradlew && ./gradlew --no-daemon dependencies > /dev/null 2>&1 || true
|
||||
|
||||
# Now the source. `installDist` produces build/install/Botinator with a launcher
|
||||
# script and all dependency jars under lib/.
|
||||
COPY src ./src
|
||||
RUN ./gradlew --no-daemon --stacktrace installDist
|
||||
|
||||
# ---- Runtime stage: JRE only, no build tooling ----
|
||||
FROM eclipse-temurin:25-jre
|
||||
WORKDIR /app
|
||||
|
||||
# Run as an unprivileged user.
|
||||
RUN useradd --system --create-home --uid 10001 botinator
|
||||
USER botinator
|
||||
|
||||
# The assembled app (bin/Botinator launcher + lib/*.jar).
|
||||
COPY --from=build --chown=botinator:botinator /app/build/install/Botinator/ ./
|
||||
|
||||
# BOT_TOKEN etc. and the catchphrases file are supplied at deploy time
|
||||
# (env_file / -e for config, a mounted volume for catchphrases.txt).
|
||||
ENTRYPOINT ["./bin/Botinator"]
|
||||
Reference in New Issue
Block a user