Feat: Docker build

This commit is contained in:
gregory 2019-01-24 00:11:31 -05:00
parent f21e96444f
commit 58390034b5
3 changed files with 69 additions and 8 deletions

43
Dockerfile Normal file
View File

@ -0,0 +1,43 @@
FROM library/debian:9 as build
RUN apt-get update
RUN apt-get install git meson ninja-build gcc cmake libssl-dev -y
RUN apt-get install openjdk-8-jre-headless perl -y
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
RUN mkdir /libmpdclient-dist
RUN git clone https://github.com/MusicPlayerDaemon/libmpdclient.git
WORKDIR /libmpdclient
RUN meson . output
RUN ninja -C output
RUN ninja -C output install
RUN mesonconf output -Dprefix=/libmpdclient-dist
RUN ninja -C output
RUN ninja -C output install
WORKDIR /
RUN tar -czvf /libmpdclient-master.tar.gz -C /libmpdclient-dist .
COPY . /myMPD/
ENV MYMPD_INSTALL_PREFIX=/myMPD-dist/usr
RUN mkdir -p $MYMPD_INSTALL_PREFIX
WORKDIR /myMPD
RUN ./mkrelease.sh
WORKDIR /
RUN tar -czvf /mympd.tar.gz -C /myMPD-dist .
FROM library/debian:9-slim
ENV MYMPD_COVERIMAGENAME=folder.jpg
ENV MYMPD_MPDHOST=127.0.0.1
ENV MYMPD_MPDPORT=6600
ENV MYMPD_SSL=true
ENV MYMPD_LOGLEVEL=1
RUN apt-get update && apt-get install libssl-dev openssl -y
COPY --from=build /libmpdclient-master.tar.gz /
COPY --from=build /mympd.tar.gz /
COPY --from=build /myMPD/debian/postinst /
WORKDIR /
RUN tar xfv libmpdclient-master.tar.gz -C /
RUN tar xfv mympd.tar.gz -C /
RUN rm libmpdclient-master.tar.gz
RUN rm mympd.tar.gz
COPY contrib/docker/init.sh /
RUN chmod +x /init.sh
ENTRYPOINT ["/init.sh"]

11
contrib/docker/init.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/sh
/postinst
sed -i "s#mpdhost = 127.0.0.1#mpdhost = $MYMPD_MPDHOST#g" /etc/mympd/mympd.conf
sed -i "s#mpdport = 6600#mpdport = $MYMPD_MPDPORT#g" /etc/mympd/mympd.conf
sed -i "s#ssl = true#ssl = $MYMPD_SSL#g" /etc/mympd/mympd.conf
sed -i "s#coverimagename = folder.jpg#coverimagename = $MYMPD_COVERIMAGENAME#g" /etc/mympd/mympd.conf
sed -i "s#loglevel = 1#loglevel = $MYMPD_LOGLEVEL#g" /etc/mympd/mympd.conf
mympd /etc/mympd/mympd.conf

View File

@ -1,4 +1,4 @@
#/bin/sh
#!/bin/bash
JAVABIN=$(which java 2> /dev/null)
HASJAVA="$?"
@ -18,11 +18,11 @@ function minify {
then
perl -pe 's/^\s*//gm; s/\s*$//gm' $SRC > $DST
ERROR="$?"
elif [ "$TYPE" = "js" ] && [ "$HASJAVA" = "1" ]
elif [ "$TYPE" = "js" ] && [ "$HASJAVA" = "0" ]
then
$JAVABIN -jar dist/buildtools/closure-compiler.jar $SRC > $DST
ERROR="$?"
elif [ "$TYPE" = "css" ] && [ "$HASJAVA" = "1" ]
elif [ "$TYPE" = "css" ] && [ "$HASJAVA" = "0" ]
then
$JAVABIN -jar dist/buildtools/closure-stylesheets.jar --allow-unrecognized-properties $SRC > $DST
ERROR="$?"
@ -59,12 +59,19 @@ minify html htdocs/player.html dist/htdocs/player.html
echo "Compiling and installing mympd"
install -d release
cd release
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=RELEASE ..
INSTALL_PREFIX="${MYMPD_INSTALL_PREFIX:-/usr}"
cmake -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -DCMAKE_BUILD_TYPE=RELEASE ..
make
sudo make install
cd ..
sudo debian/postinst
if [ $INSTALL_PREFIX = "/usr" ]
then
sudo make install
cd ..
sudo debian/postinst
else
# Container build implied when $INSTALL_PREFIX != /usr
make install
cd ..
fi
if [ -x /usr/bin/cppcheck ]
then