Skip to content

Instantly share code, notes, and snippets.

@siygle
Forked from jimpick/Dockerfile
Last active July 25, 2017 03:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save siygle/23522d6228cd4ae0e412da0e6f8531d4 to your computer and use it in GitHub Desktop.
Save siygle/23522d6228cd4ae0e412da0e6f8531d4 to your computer and use it in GitHub Desktop.
Hosting dathttpd on now.sh - https://dat.jimpick.com/
directory: ~/.dathttpd
sites:
sylee.tw:
url: dat://f64fbfb8f4a8cb430f01e2b00e71e9a944d20273cc9e7cd302a5692f86d449d7
datOnly: false
dat.sylee.tw:
url: dat://8ea9413add81a505cefd12f343412e230285165496c1177b72cdb289538c1f1c
datOnly: false
FROM ubuntu:16.04
RUN apt-get update --yes && apt-get upgrade --yes
RUN apt-get update --yes && apt-get upgrade --yes
RUN apt-get -y install curl
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get -y install ffmpeg zlib1g-dev automake autoconf git \
libtool subversion libatlas3-base python-pip \
python-dev wget unzip cowsay git-lfs \
libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev \
libpng-dev build-essential g++ vim
RUN apt-get clean
RUN curl https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.xz | tar xJf - -C /opt
ENV PATH="/opt/node-v8.2.1-linux-x64/bin:${PATH}"
RUN curl -O https://bootstrap.pypa.io/get-pip.py
RUN python get-pip.py
RUN pip install awscli --ignore-installed six
RUN npm install -g json
ENV PATH="/usr/games:${PATH}"
RUN ln -s `which nodejs` /usr/bin/node
# Non-privileged user
RUN useradd -m dathttpd
# Copy files
WORKDIR /home/dathttpd
RUN chown -R dathttpd. .
# Change npm permissions
RUN chown -R dathttpd /opt/node-v8.2.1-linux-x64/lib/node_modules
RUN chown -R dathttpd /opt/node-v8.2.1-linux-x64/bin
RUN chown -R dathttpd /opt/node-v8.2.1-linux-x64/share
# Allow binding to ports 80 and 443 as a regular user
# https://github.com/beakerbrowser/dathttpd
RUN setcap cap_net_bind_service=+ep /opt/node-v8.2.1-linux-x64/bin/node
# Unprivileged
USER dathttpd
RUN npm install -g dathttpd
COPY dathttpd.yml .dathttpd.yml
EXPOSE 80
ENTRYPOINT dathttpd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment