diff --git a/Dockerfile b/Dockerfile index 1399b07..f48e01b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,16 @@ -# Use phusion/baseimage as base image. To make your builds reproducible, make -# sure you lock down to a specific version, not to `latest`! -# See https://github.com/phusion/baseimage-docker/blob/master/Changelog.md for -# a list of version numbers. -FROM phusion/baseimage-pi:0.9.16 +FROM aiko/rpi-node:0.10.36 # Use baseimage-docker's init system. CMD ["/sbin/my_init"] -# ...put your own build instructions here... -COPY . /data -RUN /data/bootstrap -RUN su - red /data/bootstrap-red +COPY . /tmp +RUN /tmp/bootstrap +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 147531a..cc9a4d6 100755 --- a/bootstrap +++ b/bootstrap @@ -9,13 +9,28 @@ python get-pip.py pip install RPi.GPIO -useradd -m -d /data/red -s /bin/bash red +useradd -m -d /home/red -s /bin/bash red adduser red dialout adduser red tty -cp sudoers /etc/sudoers +mv /tmp/sudoers /etc/sudoers +mv /tmp/package.json /home/red/package.json +mkdir /data +chown red /data /home/red/package.json npm install -g pm2 -cp package.json /data/red/ +mkdir -p /usr/share/doc +touch /usr/share/doc/python-rpi.gpio + +mkdir /etc/service/node-red + +echo "#!/usr/bin/env bash +#su -l -c "pm2 start package.json" red +#su -l -c "pm2 logs" red +exec /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/package.json b/package.json index 5f6f4fe..ca557da 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,13 @@ "node-red-contrib-freeboard": "0.0.5", "node-red-node-discovery": "0.0.6", "node-red-node-snmp": "0.0.2" - } + }, + "apps":[{ + "name":"node-red-pi", + "script":"red.js", + "args":["-v","--userDir","/data"], + "node_args":"--max-old-space-size=128", + "cwd":"./node_modules/node-red" + }] }