diff --git a/README.md b/README.md index c969cc4..d929cad 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,13 @@ docker run -p 3000:3000 opendronemap/nodeodm docker-machine ip ``` +* A rootless alternative to Docker is using [Apptainer](https://apptainer.org/). In order to run NodeODM together with ClusterODM on HPC, we need a rootless alternative to Docker, and that's where Apptainer comes in to play. From the Linux command line, cd into the NodeODM folder and run the following commands to host a NodeODM instance: + +``` +apptainer build --sandbox node/ singularity.def +apptainer run --writable node/ +``` + Linux users can connect to 127.0.0.1. * Open a Web Browser to `http://:3000` diff --git a/singularity.def b/singularity.def new file mode 100644 index 0000000..8c4e5e3 --- /dev/null +++ b/singularity.def @@ -0,0 +1,34 @@ +Bootstrap: docker +From: opendronemap/odm:latest +Stage: spython-base + +%files +. /var/www +%labels +MAINTAINER Piero Toffanin +%post + +# EXPOSE 3000 + +su - root # USER root +apt-get update && apt-get install -y curl gpg-agent +curl --silent --location https://deb.nodesource.com/setup_14.x | bash - +apt-get install -y nodejs unzip p7zip-full && npm install -g nodemon && \ +ln -s /code/SuperBuild/install/bin/untwine /usr/bin/untwine && \ +ln -s /code/SuperBuild/install/bin/entwine /usr/bin/entwine && \ +ln -s /code/SuperBuild/install/bin/pdal /usr/bin/pdal + + +mkdir -p /var/www + +mkdir -p "/var/www" +cd "/var/www" + +npm install --production && mkdir -p tmp + +%runscript +cd "/var/www" +exec /usr/bin/node /var/www/index.js "$@" +%startscript +cd "/var/www" +exec /usr/bin/node /var/www/index.js "$@"