From 01ba6b102ebbbe825b418fc5b962c26c242b7421 Mon Sep 17 00:00:00 2001 From: aNNiMON Date: Wed, 4 Sep 2024 19:57:19 +0300 Subject: [PATCH] Reduce a docker image file size --- Dockerfile | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index a21a03c..554b168 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,18 +5,23 @@ COPY build.gradle /home/gradle/java-code/ WORKDIR /home/gradle/java-code RUN GRADLE_OPTS="-Xmx256m" gradle build --build-cache --stacktrace -i --no-daemon -FROM gradle:8.1.1-jdk17-alpine as builder +FROM gradle:8.1.1-jdk17-alpine AS builder COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle COPY . /usr/src/java-code WORKDIR /usr/src/java-code RUN GRADLE_OPTS="-Xmx256m" gradle shadowJar --build-cache --stacktrace --no-daemon -FROM eclipse-temurin:17-jre-alpine -RUN apk add --no-cache python3 python3-dev py3-pip ffmpeg gcc g++ \ - && python3 -m pip install --break-system-packages --upgrade wheel yt-dlp pyrogram TgCrypto +# Using 3.11 here, otherwise it requires gcc and g++ to compile TgCrypto, resulting in 2x bigger image +FROM python:3.11-alpine +ENV JAVA_HOME=/opt/java/openjdk +COPY --from=eclipse-temurin:17-jre-alpine $JAVA_HOME $JAVA_HOME +ENV PATH="${JAVA_HOME}/bin:${PATH}" +RUN apk add --no-cache py3-pip ffmpeg \ + && python3 -m pip install --break-system-packages --no-cache-dir --upgrade \ + wheel yt-dlp pyrogram TgCrypto WORKDIR /app -COPY --from=builder /usr/src/java-code/build/libs/ffmpegbot-1.2-SNAPSHOT-all.jar . +COPY --from=builder /usr/src/java-code/build/libs/ffmpegbot-1.2-SNAPSHOT-all.jar ffmpegbot.jar RUN mkdir input && mkdir output COPY pytgfile.py . COPY ffmpegbot-docker.yaml . -ENTRYPOINT ["java", "-jar", "/app/ffmpegbot-1.2-SNAPSHOT-all.jar", "docker"] +ENTRYPOINT ["java", "-jar", "/app/ffmpegbot.jar", "docker"] \ No newline at end of file