anchor.diff: +
   ARG X_DCKR_TAG=xenial
   FROM ubuntu:$X_DCKR_TAG
   
  
positive.code: RUN \
    DEBIAN_FRONTEND=noninteractive; RUNLEVEL=1; \
    apt-get update -qqy && \
    apt-get install -qqy --allow-downgrades \
      bash posh dash \
      tree realpath uuid-runtime moreutils \
      sudo tree realpath \
      vim git curl dropbear \
      build-essential uuid-runtime \
      python python-tox \
      npm nodejs \
      ruby-full \
      php && \
    rm -rf /var/cache/apt/* && \
    \
    npm install --quiet -g npm && \
        npm cache clean -f && \
        npm install --quiet -g n && \
        n stable && \
    \
    chmod g+rw /usr/local/* /usr/local/lib/node_modules && \
    chgrp staff /usr/local/* /usr/local/lib/node_modules && \
    \
    version="$(cd /usr/local/n/versions/node/; echo * | tr ' ' '\n' | sort -rn | head -n 1)"; \
    { test -e /usr/bin/node || ln -sf /usr/local/n/versions/node/$version/bin/node /usr/bin/node ; }; \
    \
    cd /tmp/ && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py && \
    pip install --quiet \
    	    setuptools PyYAML zope.interface zope.component objectpath docutils && \
    for b in rst2html rst2xml rst2pxml; do \
      ln -s /usr/local/bin/$b.py /usr/local/bin/$b; done; \
    \
    npm install --quiet -g coffee-script pm2 grunt grunt-cli webpack && \
    gem install --quiet sass
  
  # TODO: fix pm2 fsevents
  # TODO: accumulating current dev deps above. should split up into multiple bases and derivatives, one big one perhaps
  
  RUN \
    echo 'export PATH=$PATH:/usr/local/bin' > /etc/profile.d/ssh-environment; \
  
negative.code: # Setup passwordless sudo
  RUN \
    addgroup supergroup && \
    touch /etc/sudoers.d/sandbox && { \
      echo "$BOX_USER    ALL=NOPASSWD:/usr/sbin/service *"; \
      echo "$BOX_USER    ALL=(www-data) NOPASSWD:ALL"; \
    } > /etc/sudoers.d/treebox
  
  
  # Setup user
  