From 05f8e442133e73a2dc827ac85f4304fe0c8a3ceb Mon Sep 17 00:00:00 2001 From: loki5512344 Date: Wed, 19 Aug 2026 14:00:39 +0200 Subject: [PATCH] fix(docker): robust jar glob, lavalink healthcheck + startup order, restrict 2333 to loopback - COPY build/libs/*.jar instead of hardcoded discord-bot-1.0.0.jar (breaks on version bump) - lavalink: add /v4/info healthcheck; bot waits for service_healthy before start; lavalink now depends on spotify-tokener - lavalink host port bound to 127.0.0.1 (bot talks over docker network; no internet exposure) - .dockerignore: exclude .github + lavalink/ from build context --- .dockerignore | 2 ++ Dockerfile | 2 +- docker-compose.yml | 13 +++++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index a0dcb22..66fb0a6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,6 +2,8 @@ .gitignore .gitattributes .env +.github +lavalink .gradle build bin diff --git a/Dockerfile b/Dockerfile index 480a92f..d9f88f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN ./gradlew jar --stacktrace FROM eclipse-temurin:26-jre-alpine RUN addgroup -S bot && adduser -S bot -G bot WORKDIR /app -COPY --from=builder /build/build/libs/discord-bot-1.0.0.jar app.jar +COPY --from=builder /build/build/libs/*.jar app.jar COPY data/prompts /app/prompts COPY data/knowledge /app/knowledge RUN mkdir -p /app/data /app/logs && chown -R bot:bot /app diff --git a/docker-compose.yml b/docker-compose.yml index 9b36246..a465323 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,10 @@ services: image: ghcr.io/lavalink-devs/lavalink:4-alpine container_name: loki-lavalink restart: unless-stopped + depends_on: + - spotify-tokener ports: - - "2333:2333" + - "127.0.0.1:2333:2333" volumes: - ./lavalink/application.yml:/opt/Lavalink/application.yml:ro - ./lavalink/plugins/:/opt/Lavalink/plugins/ @@ -13,6 +15,12 @@ services: JAVA_OPTS: "-Xmx1G -Xms256M" SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID} SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET} + healthcheck: + test: ["CMD-SHELL", "wget -q -O /dev/null --header=Authorization:Hch4HiVCxkKs9JPiSnrt4Q http://localhost:2333/v4/info || exit 1"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 20s spotify-tokener: image: ghcr.io/topi314/spotify-tokener:master @@ -29,7 +37,8 @@ services: container_name: loki-bot restart: unless-stopped depends_on: - - lavalink + lavalink: + condition: service_healthy mem_limit: 1g ports: - "8712:8712"