Adapted from code node-red-contrib-browser issue #5
Docker image is built with (in case I forget, which I often do):
docker build -t nb-docker .
Adapted from code node-red-contrib-browser issue #5
Docker image is built with (in case I forget, which I often do):
docker build -t nb-docker .
| #!/bin/bash | |
| # To show on XQuartz on macOS | |
| # https://fredrikaverpil.github.io/2016/07/31/docker-for-mac-and-gui-applications/ | |
| ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') | |
| xhost + $ip | |
| docker run -it \ | |
| -v /tmp/.X11-unix:/tmp/.X11-unix \ | |
| -e DISPLAY=$ip:0 \ | |
| -p 1880:1880 \ | |
| --name nb-docker \ | |
| nb-docker |
| FROM nodered/node-red-docker:v8 | |
| # Switch back to root user to install packages and configure entrypoint | |
| USER root | |
| RUN apt-get update && apt-get install -y \ | |
| xvfb \ | |
| x11-xkb-utils \ | |
| xfonts-100dpi \ | |
| xfonts-75dpi \ | |
| xfonts-scalable \ | |
| xfonts-cyrillic \ | |
| x11-apps \ | |
| clang \ | |
| libdbus-1-dev \ | |
| libgtk2.0-dev \ | |
| libnotify-dev \ | |
| libgnome-keyring-dev \ | |
| libgconf2-dev \ | |
| libasound2-dev \ | |
| libcap-dev \ | |
| libcups2-dev \ | |
| libxtst-dev \ | |
| libxss1 \ | |
| libnss3-dev \ | |
| gcc-multilib \ | |
| g++-multilib \ | |
| && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | |
| COPY entrypoint.sh / | |
| RUN chmod +x /entrypoint.sh | |
| ENTRYPOINT ["/entrypoint.sh"] | |
| RUN mkdir -m 1777 /tmp/.X11-unix | |
| # Switch back to node-red user to install the nbrowser module and run as non-root user | |
| USER node-red | |
| RUN npm install node-red-contrib-nbrowser node-red-contrib-fs-ops node-red-contrib-credentials | |
| ENV DEBUG=nightmare | |
| CMD ["npm", "start", "--", "--userDir", "/data"] |
| #!/usr/bin/env bash | |
| set -e | |
| # Start Xvfb | |
| if [ -z ${DISPLAY+x} ] | |
| then | |
| Xvfb -ac -screen scrn 1280x2000x24 :9.0 & | |
| export DISPLAY=:9.0 | |
| fi | |
| exec "$@" |
| #!/bin/bash | |
| export DISPLAY= | |
| docker run -it \ | |
| -p 1880:1880 \ | |
| --name headless \ | |
| nb-docker |