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
This commit is contained in:
parent
54cc26e675
commit
05f8e44213
3 changed files with 14 additions and 3 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
.gitignore
|
.gitignore
|
||||||
.gitattributes
|
.gitattributes
|
||||||
.env
|
.env
|
||||||
|
.github
|
||||||
|
lavalink
|
||||||
.gradle
|
.gradle
|
||||||
build
|
build
|
||||||
bin
|
bin
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ RUN ./gradlew jar --stacktrace
|
||||||
FROM eclipse-temurin:26-jre-alpine
|
FROM eclipse-temurin:26-jre-alpine
|
||||||
RUN addgroup -S bot && adduser -S bot -G bot
|
RUN addgroup -S bot && adduser -S bot -G bot
|
||||||
WORKDIR /app
|
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/prompts /app/prompts
|
||||||
COPY data/knowledge /app/knowledge
|
COPY data/knowledge /app/knowledge
|
||||||
RUN mkdir -p /app/data /app/logs && chown -R bot:bot /app
|
RUN mkdir -p /app/data /app/logs && chown -R bot:bot /app
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,10 @@ services:
|
||||||
image: ghcr.io/lavalink-devs/lavalink:4-alpine
|
image: ghcr.io/lavalink-devs/lavalink:4-alpine
|
||||||
container_name: loki-lavalink
|
container_name: loki-lavalink
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- spotify-tokener
|
||||||
ports:
|
ports:
|
||||||
- "2333:2333"
|
- "127.0.0.1:2333:2333"
|
||||||
volumes:
|
volumes:
|
||||||
- ./lavalink/application.yml:/opt/Lavalink/application.yml:ro
|
- ./lavalink/application.yml:/opt/Lavalink/application.yml:ro
|
||||||
- ./lavalink/plugins/:/opt/Lavalink/plugins/
|
- ./lavalink/plugins/:/opt/Lavalink/plugins/
|
||||||
|
|
@ -13,6 +15,12 @@ services:
|
||||||
JAVA_OPTS: "-Xmx1G -Xms256M"
|
JAVA_OPTS: "-Xmx1G -Xms256M"
|
||||||
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
|
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
|
||||||
SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET}
|
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:
|
spotify-tokener:
|
||||||
image: ghcr.io/topi314/spotify-tokener:master
|
image: ghcr.io/topi314/spotify-tokener:master
|
||||||
|
|
@ -29,7 +37,8 @@ services:
|
||||||
container_name: loki-bot
|
container_name: loki-bot
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- lavalink
|
lavalink:
|
||||||
|
condition: service_healthy
|
||||||
mem_limit: 1g
|
mem_limit: 1g
|
||||||
ports:
|
ports:
|
||||||
- "8712:8712"
|
- "8712:8712"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue