Browse Source

myMPD:20.0.0

John 8 months ago
parent
commit
c3c206bdd1
4 changed files with 91 additions and 69 deletions
  1. 20 1
      .github/workflows/mpd.yml
  2. 2 67
      mpd/Dockerfile
  3. 68 0
      mpd/Dockerfile.mpd
  4. 1 1
      mpd/README.md

+ 20 - 1
.github/workflows/mpd.yml

@@ -4,6 +4,7 @@ on:
   push:
     paths:
     - 'mpd/Dockerfile'
+    - 'mpd/Dockerfile.mpd'
     - 'mpd/root/**'
   workflow_dispatch:
 
@@ -17,8 +18,9 @@ jobs:
 
       - name: 'Set env'
         run: |
-          echo "MPD_VER=$(echo `grep -n "ARG MPD_VER=" mpd/Dockerfile`|awk -F= '{print $2}')" >> $GITHUB_ENV
+          echo "MPD_VER=$(echo `grep -n "ARG MPD_VER=" mpd/Dockerfile.mpd`|awk -F= '{print $2}')" >> $GITHUB_ENV
           echo "MYMPD_VER=$(echo `grep -n "ARG MYMPD_VER=" mpd/Dockerfile`|awk -F= '{print $2}')" >> $GITHUB_ENV
+          echo "ALPINE_VER=$(echo `grep -n "alpine" mpd/Dockerfile.mpd`|awk -F: '{print $3}')" >> $GITHUB_ENV
 
       - name: Set up QEMU
         id: qemu
@@ -45,6 +47,23 @@ jobs:
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
 
+      - name: Check image exist
+        id: mpd-check-step
+        run: |
+          if [ `DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect ghcr.io/gshang2017/mpd-bin:${{ env.MPD_VER }}-${{ env.ALPINE_VER }} > /dev/null  2>&1; echo $?` == "0" ];then echo "skipnext=true" >> $GITHUB_OUTPUT;fi
+
+      - name: Build and push
+        if : ( steps.mpd-check-step.outputs.skipnext  != 'true' )
+        uses: docker/build-push-action@v6
+        with:
+          context: ./mpd
+          file: ./mpd/Dockerfile.mpd
+          platforms: linux/amd64,linux/arm64,linux/arm/v7
+          push: true
+          tags: |
+            ghcr.io/gshang2017/mpd-bin:latest
+            ghcr.io/gshang2017/mpd-bin:${{ env.MPD_VER }}-${{ env.ALPINE_VER }}
+
       - name: Build and push
         uses: docker/build-push-action@v6
         with:

+ 2 - 67
mpd/Dockerfile

@@ -1,6 +1,6 @@
 FROM alpine:3.21 AS mympd
 
-ARG MYMPD_VER=19.0.3
+ARG MYMPD_VER=20.0.0
 
 WORKDIR /myMPD
 RUN wget -O /tmp/mympd.tar.gz https://github.com/jcorporation/myMPD/archive/refs/tags/v${MYMPD_VER}.tar.gz
@@ -10,72 +10,7 @@ RUN cmake -B "release" -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=Relea
 RUN make -j $(nproc) -C "release"
 
 
-FROM alpine:3.21 AS mpd
-
-ARG MPD_VER=0.23.17
-
-RUN apk add --no-cache abuild-meson build-base \
-  alsa-lib-dev \
-  avahi-dev \
-  boost-dev \
-  curl-dev \
-  expat-dev \
-  faad2-dev \
-  ffmpeg-dev \
-  flac-dev \
-  fmt-dev \
-  glib-dev \
-  gtest-dev \
-  icu-dev \
-  jack-dev \
-  lame-dev \
-  libao-dev \
-  libcap-utils \
-  libcdio-paranoia-dev \
-  libid3tag-dev \
-  libmad-dev \
-  libmodplug-dev \
-  libmpdclient-dev \
-  libnfs-dev \
-  libogg-dev \
-  libsamplerate-dev \
-  libshout-dev \
-  libvorbis-dev \
-  meson \
-  opus-dev \
-  pipewire-dev \
-  pulseaudio-dev \
-  py3-attrs \
-  py3-sphinx \
-  samba-dev \
-  soxr-dev \
-  wavpack-dev \
-&& mkdir -p /tmp/mpdbuild \
-&& wget -P /tmp/mpdbuild https://github.com/MusicPlayerDaemon/MPD/archive/refs/tags/v${MPD_VER}.tar.gz \
-&& tar -zxf /tmp/mpdbuild/v${MPD_VER}.tar.gz -C /tmp/mpdbuild \
-&& cd /tmp/mpdbuild/MPD-${MPD_VER} \
-&& abuild-meson \
-  -Dshout=enabled \
-  -Dopus=enabled \
-  -Dmodplug=enabled \
-  -Dnfs=enabled \
-  -Dsmbclient=enabled \
-  -Dffmpeg=enabled \
-  -Dlibmpdclient=enabled \
-  -Dcdio_paranoia=enabled \
-  -Dzeroconf=avahi \
-  -Dtest=true \
-  -Ddocumentation=enabled \
-  -Dwavpack=enabled \
-  -Dpipewire=enabled \
-  -Dsnapcast=true \
-  . output \
-&& meson compile -C output \
-&& meson install --no-rebuild -C output \
-&& mkdir -p /usr/local/mpd/ \
-&& sed	-e 's:\#user.*:user\t\t"mpd":' \
-  -e 's:\#log_file.*:log_file\t\t"syslog":' \
-  doc/mpdconf.example > /usr/local/mpd/mpd.conf
+FROM ghcr.io/gshang2017/mpd-bin:latest AS mpd
 
 
 FROM jlesage/baseimage-gui:alpine-3.21-v4

+ 68 - 0
mpd/Dockerfile.mpd

@@ -0,0 +1,68 @@
+FROM alpine:3.21
+
+ARG MPD_VER=0.23.17
+
+RUN apk add --no-cache --virtual mpddep abuild-meson build-base \
+  alsa-lib-dev \
+  avahi-dev \
+  boost-dev \
+  curl-dev \
+  expat-dev \
+  faad2-dev \
+  ffmpeg-dev \
+  flac-dev \
+  fmt-dev \
+  glib-dev \
+  gtest-dev \
+  icu-dev \
+  jack-dev \
+  lame-dev \
+  libao-dev \
+  libcap-utils \
+  libcdio-paranoia-dev \
+  libid3tag-dev \
+  libmad-dev \
+  libmodplug-dev \
+  libmpdclient-dev \
+  libnfs-dev \
+  libogg-dev \
+  libsamplerate-dev \
+  libshout-dev \
+  libvorbis-dev \
+  meson \
+  opus-dev \
+  pipewire-dev \
+  pulseaudio-dev \
+  py3-attrs \
+  py3-sphinx \
+  samba-dev \
+  soxr-dev \
+  wavpack-dev \
+&& mkdir -p /tmp/mpdbuild \
+&& wget -P /tmp/mpdbuild https://github.com/MusicPlayerDaemon/MPD/archive/refs/tags/v${MPD_VER}.tar.gz \
+&& tar -zxf /tmp/mpdbuild/v${MPD_VER}.tar.gz -C /tmp/mpdbuild \
+&& cd /tmp/mpdbuild/MPD-${MPD_VER} \
+&& abuild-meson \
+  -Dshout=enabled \
+  -Dopus=enabled \
+  -Dmodplug=enabled \
+  -Dnfs=enabled \
+  -Dsmbclient=enabled \
+  -Dffmpeg=enabled \
+  -Dlibmpdclient=enabled \
+  -Dcdio_paranoia=enabled \
+  -Dzeroconf=avahi \
+  -Dtest=true \
+  -Ddocumentation=enabled \
+  -Dwavpack=enabled \
+  -Dpipewire=enabled \
+  -Dsnapcast=true \
+  . output \
+&& meson compile -C output \
+&& meson install --no-rebuild -C output \
+&& mkdir -p /usr/local/mpd/ \
+&& sed	-e 's:\#user.*:user\t\t"mpd":' \
+  -e 's:\#log_file.*:log_file\t\t"syslog":' \
+  doc/mpdconf.example > /usr/local/mpd/mpd.conf \
+&& apk del mpddep \
+&& rm -rf /var/cache/apk/* /tmp/*

+ 1 - 1
mpd/README.md

@@ -16,7 +16,7 @@
 |名称|版本|说明|
 |:-|:-|:-|
 |mpd|0.23.17|amd64;arm64v8;arm32v7,集成蓝牙(bluetooth)。|
-|myMPD|19.0.3|mpd的web管理界面|
+|myMPD|20.0.0|mpd的web管理界面|
 
 #### 注意: