airsonic-pulse/install/docker/Dockerfile
litebito b7918b7899 chore: clean up contrib/, fix upstream refs, retire lgtm.yml
Remove stale contrib/ files superseded by current tooling:
- contrib/airsonic.service (superseded by install/systemd/)
- contrib/airsonic-systemd-env (superseded by installer override files)
- contrib/deploy.sh (Tomcat-based, not applicable to standalone WAR)
- contrib/release.md (manual process replaced by GitHub Actions)

Fix upstream references in install/:
- install/docker/Dockerfile: update LABEL url to litebito/airsonic-pulse
- install/compose/docker-compose.hsqldb.yaml: rename service/container,
  update image to ghcr.io/litebito/airsonic-pulse
- install/compose/docker-compose.postgres.yaml: update image reference

Fix upstream reference in .github/CONTRIBUTING.md (line 5)

Retire lgtm.yml: LGTM was shut down November 2022; CodeQL workflow
(any_codeql_scan.yml) is the current replacement.

Fix .github/workflows/any_trivy_scan missing .yml extension so GitHub
Actions recognises the workflow file.

Update contrib/i18n_fix_encoding.go: replace deprecated io/ioutil with
io.ReadAll and os.WriteFile (Go 1.16+).

Fix contrib/library_autoupdater.sh: correct misleading comment
("10 minutes") to match actual sleep duration (3600s = 60 minutes).
2026-04-26 14:05:53 +02:00

63 lines
2 KiB
Docker

ARG IMAGE_JAVA_VERSION=21.0.7_6
FROM eclipse-temurin:${IMAGE_JAVA_VERSION}-jdk AS builder
WORKDIR /target
COPY run.sh /usr/local/bin/run.sh
RUN chmod +x /usr/local/bin/run.sh
COPY entry.sh /usr/local/bin/entry.sh
RUN chmod +x /usr/local/bin/entry.sh
COPY target/dependency/airsonic-main.war airsonic.war
RUN jar -xf ./airsonic.war
RUN mv WEB-INF/lib-provided lib-provided
RUN mv WEB-INF/lib lib
RUN mv WEB-INF/classes/META-INF cMETA-INF
RUN mv WEB-INF/classes/liquibase cliquibase
FROM eclipse-temurin:${IMAGE_JAVA_VERSION}-jre-jammy
LABEL description="Airsonic-Pulse is a free, web-based media streamer, providing ubiquitous access to your music." \
url="https://github.com/litebito/airsonic-pulse"
ENV AIRSONIC_PORT=4040 AIRSONIC_DIR=/var CONTEXT_PATH=/ UPNP_PORT=4041 PUID=0 PGID=0
WORKDIR $AIRSONIC_DIR
RUN apt-get update \
&& apt-get install -y \
ffmpeg \
x264 \
x265 \
lame \
xmp \
bash \
fonts-dejavu \
gosu \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local/bin/run.sh /usr/local/bin/run.sh
COPY --from=builder /usr/local/bin/entry.sh /usr/local/bin/entry.sh
COPY --from=builder /target/cMETA-INF /app/WEB-INF/classes/META-INF
COPY --from=builder /target/lib /app/WEB-INF/lib
COPY --from=builder /target/lib-provided /app/WEB-INF/lib-provided
COPY --from=builder /target/org /app/org
COPY --from=builder /target/cliquibase /app/WEB-INF/classes/liquibase
COPY --from=builder /target/META-INF /app/META-INF
COPY --from=builder /target/WEB-INF /app/WEB-INF
EXPOSE $AIRSONIC_PORT
# Default DLNA/UPnP ports
EXPOSE $UPNP_PORT
EXPOSE 1900/udp
USER ${PUID}:${PGID}
VOLUME $AIRSONIC_DIR/airsonic $AIRSONIC_DIR/music $AIRSONIC_DIR/playlists $AIRSONIC_DIR/podcasts
HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost:"$AIRSONIC_PORT""$CONTEXT_PATH"rest/ping || false
ENTRYPOINT ["entry.sh"]