From ea8bf2549f119754de0dd4323f1682d80f8b2249 Mon Sep 17 00:00:00 2001 From: Aiko Mastboom Date: Sun, 10 May 2015 17:26:00 +0200 Subject: [PATCH] bootstrap service --- Dockerfile | 3 ++- bootstrap | 17 ++--------------- bootstrap-service | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 bootstrap-service diff --git a/Dockerfile b/Dockerfile index 57ce796..a460457 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,16 @@ FROM phusion/baseimage:0.9.16 # Use baseimage-docker's init system. CMD ["/sbin/my_init"] +VOLUME /data COPY . /tmp RUN NODE_VERSION=0.10.38 TIMEZONE="Europe/Amsterdam" /tmp/bootstrap +RUN /tmp/bootstrap-service RUN su -lc /tmp/bootstrap-red red # Clean up APT when done. RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # How to plug it in -VOLUME /data EXPOSE 1880 diff --git a/bootstrap b/bootstrap index af49471..db25061 100755 --- a/bootstrap +++ b/bootstrap @@ -1,4 +1,6 @@ #!/usr/bin/env bash +home_red=/home/red +package_json=${home_red}/package.json apt-get update @@ -27,14 +29,10 @@ chmod +x /bin/nave /bin/nave usemain ${NODE_VERSION} -home_red=/home/red - useradd -m -d ${home_red} -s /bin/bash red adduser red dialout adduser red tty -package_json=${home_red}/package.json - mv /tmp/sudoers /etc/sudoers mv /tmp/package.json ${package_json} mkdir -p /data @@ -44,14 +42,3 @@ npm install -g pm2 mkdir -p /usr/share/doc touch /usr/share/doc/python-rpi.gpio - -mkdir -p /etc/service/node-red - -echo "#!/usr/bin/env bash -cd ${home_red} -/sbin/setuser red pm2 start ${package_json} -exec /sbin/setuser red pm2 logs 2>&1 -" > /etc/service/node-red/run - -chmod +x /etc/service/node-red/run - diff --git a/bootstrap-service b/bootstrap-service new file mode 100644 index 0000000..80b885d --- /dev/null +++ b/bootstrap-service @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +home_red=/home/red +package_json=${home_red}/package.json + +mkdir -p /etc/service/node-red + +echo "#!/usr/bin/env bash +if [ -f /data/package.json ]; then + cd /data + /sbin/setuser red npm install + # just in case rebuild + /sbin/setuser red npm rebuild +fi +cd ${home_red} +/sbin/setuser red pm2 start ${package_json} +exec /sbin/setuser red pm2 logs 2>&1 +" > /etc/service/node-red/run + +chmod +x /etc/service/node-red/run +