- Full refactoring: max 200 lines/file, max 3 files/dir, KISS/DRY/SOLID - Lavalink client 3.4.0 + LavaSrc plugin (Spotify, Apple Music, Deezer) - 3-bot architecture: main (!), music (q!), radio (r!) - Filters: bassboost, nightcore, vaporwave, equalizer - Slash commands for music (/play, /skip, etc.) - Persistent queue in SQLite, auto-leave timer - Radio manager with auto-reconnect - Custom welcome GIF greetings via nekos.life - JDA 5.6.1, gson 2.14, hikaricp 6.3, all deps updated - Fixed YouTube playback via ytmsearch (LavaSrc) - CI/CD: Docker publish + release workflows - SpotBugs: all real bugs fixed, ignoreFailures=false - Checkstyle: Google Style (adapted), 0 violations
19 lines
650 B
Docker
19 lines
650 B
Docker
FROM eclipse-temurin:21-jdk-alpine AS builder
|
|
WORKDIR /build
|
|
COPY gradle gradle
|
|
COPY gradlew settings.gradle build.gradle ./
|
|
COPY src src
|
|
RUN ./gradlew jar --no-daemon --stacktrace
|
|
|
|
FROM eclipse-temurin:21-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
|
|
RUN mkdir -p /app/data /app/logs && chown -R bot:bot /app
|
|
USER bot
|
|
VOLUME /app/data
|
|
EXPOSE 8712
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s \
|
|
CMD wget --no-verbose --tries=1 --spider http://localhost:8712/health || exit 1
|
|
ENV DB_PATH=/app/data/bot.db
|
|
ENTRYPOINT ["java", "-jar", "app.jar"]
|