Skip to content

Instantly share code, notes, and snippets.

@adamgotterer
Created June 20, 2018 15:48

Revisions

  1. adamgotterer renamed this gist Jun 20, 2018. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. adamgotterer created this gist Jun 20, 2018.
    55 changes: 55 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    FROM node:8-slim

    ARG DEBIAN_FRONTEND=noninteractive
    ENV PUPPETEER_VERSION 1.5.0
    ENV CHROXY_VERSION 0.3.2

    RUN apt-get update -qqy \
    && apt-get -qqy install \
    unzip gnupg curl wget ca-certificates apt-transport-https \
    git ttf-wqy-zenhei g++ libzmq3-dev apt-utils vim \
    && rm -rf /var/lib/apt/lists/* /var/cache/apt/*

    RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
    && apt-get update \
    && apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \
    --no-install-recommends \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get purge --auto-remove -y curl \
    && rm -rf /src/*.deb

    RUN wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb \
    && dpkg -i erlang-solutions_1.0_all.deb
    RUN apt-get update -qqy \
    && apt-get install -y esl-erlang \
    && apt-get install -y elixir \
    && rm erlang-solutions_1.0_all.deb

    RUN npm i puppeteer@$PUPPETEER_VERSION

    RUN useradd headless --shell /bin/bash --create-home \
    && usermod -a -G sudo headless \
    && echo 'ALL ALL = NOPASSWD: ALL' >> /etc/sudoers \
    && echo 'headless:nopassword' | chpasswd

    RUN mkdir /data \
    && chown -R headless:headless /data

    USER headless

    ENV SHELL /bin/sh
    ENV LANG C.UTF-8
    ENV LC_ALL C.UTF-8

    WORKDIR /home/headless

    RUN wget https://github.com/holsee/chroxy/archive/$CHROXY_VERSION.zip \
    && unzip $CHROXY_VERSION.zip -d /home/headless

    RUN mix local.hex --force && mix local.rebar --force

    WORKDIR /home/headless/chroxy-$CHROXY_VERSION
    RUN mix do deps.get --force, compile

    CMD ["mix", "run", "--no-halt"]