This commit is contained in:
Dominique Barton
2016-01-20 21:15:46 +01:00
parent dca44d163e
commit 6e67729d61
2 changed files with 93 additions and 7 deletions
+28 -7
View File
@@ -1,6 +1,10 @@
FROM debian:8
MAINTAINER Dominique Barton
#
# Install all required dependencies.
#
RUN apt-get -q update \
&& apt-get install -qy git python-pip python-dev libz-dev libxml2-dev libxslt1-dev gcc \
&& pip install cheetah lxml pyopenssl \
@@ -10,21 +14,38 @@ RUN apt-get -q update \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/*
#
# Create user and group for CouchPotato.
#
RUN groupadd -r -g 666 couchpotato \
&& useradd -r -u 666 -g 666 -d /couchpotato couchpotato
#
# Get CouchPotato repository.
#
RUN git clone -b master https://github.com/RuudBurger/CouchPotatoServer.git /couchpotato \
&& chown -R couchpotato: /couchpotato
ADD start.sh /start.sh
RUN chown couchpotato: /start.sh \
&& chmod 755 /start.sh
#
# Add CouchPotato init script.
#
VOLUME ["/datadir", "/media"]
ADD couchpotato.sh /couchpotato.sh
RUN chmod 755 /couchpotato.sh
EXPOSE 8080
#
# Define container settings.
#
USER couchpotato
VOLUME ["/datadir", "/download"]
EXPOSE 5000
#
# Start CouchPotato.
#
WORKDIR /couchpotato
CMD ["/start.sh"]
CMD ["/couchpotato.sh"]
+65
View File
@@ -0,0 +1,65 @@
#!/bin/sh
set -e
#
# Display settings on standard out.
#
USER="couchpotato"
echo "CouchPotato settings"
echo "===================="
echo
echo " User: ${USER}"
echo " UID: ${CP_UID:=666}"
echo " GID: ${CP_GID:=666}"
echo
echo " Config: ${CONFIG:=/datadir/config.ini}"
echo " Version: ${VERSION:=master}"
echo
#
# Change UID / GID of CouchPotato user.
#
printf "Updating UID / GID... "
[[ $(id -u ${USER}) == ${CP_UID} ]] || usermod -o -u ${CP_UID} ${USER}
[[ $(id -g ${USER}) == ${CP_GID} ]] || groupmod -o -g ${CP_GID} ${USER}
echo "[DONE]"
#
# Set directory permissions.
#
printf "Set permissions... "
touch ${CONFIG}
chown -R ${USER}: /couchpotato
chown ${USER}: /datadir /media $(dirname ${CONFIG})
echo "[DONE]"
#
# Update CouchPotato and checkout requested version.
#
printf "Updating CouchPotato git repository... "
git pull -q
echo "[DONE]"
printf "Getting current version... "
CURRENT_VERSION=$(git rev-parse --abbrev-ref HEAD)
echo "[${CURRENT_VERSION}]"
if [[ "${CURRENT_VERSION}" == "${VERSION}" ]]
then
printf "Checking out CouchPotato version '${VERSION}'... "
git checkout -q ${VERSION}
echo "[DONE]"
fi
#
# Finally, start CouchPotato.
#
CONFIG=${CONFIG:-/datadir/config.ini}
echo "Starting CouchPotato..."
exec ./CouchPotato.py --data_dir=$(dirname ${CONFIG}) --config_file=${CONFIG}