2018-07-26 10:40:31 +00:00
|
|
|
FROM bitnami/minideb:stretch as build
|
|
|
|
|
|
|
|
RUN install_packages \
|
|
|
|
curl \
|
|
|
|
ca-certificates \
|
|
|
|
git \
|
|
|
|
autoconf \
|
|
|
|
automake \
|
|
|
|
g++ \
|
|
|
|
protobuf-compiler \
|
|
|
|
zlib1g-dev \
|
|
|
|
libncurses5-dev \
|
|
|
|
libssl-dev \
|
|
|
|
pkg-config \
|
|
|
|
libprotobuf-dev \
|
|
|
|
make
|
|
|
|
|
|
|
|
# Install Golang
|
|
|
|
ENV GOROOT=/go
|
|
|
|
ENV GOPATH=/go-home
|
|
|
|
ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH
|
|
|
|
RUN curl -L -o go.tar.gz https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz
|
|
|
|
RUN mkdir -p $GOPATH/bin
|
|
|
|
RUN tar -C / -xzf go.tar.gz
|
|
|
|
|
|
|
|
ENV BASE=$GOPATH/src/browsh/interfacer
|
|
|
|
WORKDIR $BASE
|
|
|
|
ADD interfacer $BASE
|
|
|
|
|
|
|
|
# Build Browsh
|
|
|
|
RUN $BASE/contrib/build_browsh.sh
|
|
|
|
|
|
|
|
|
|
|
|
###########################
|
|
|
|
# Actual final Docker image
|
|
|
|
###########################
|
2018-01-28 07:26:37 +00:00
|
|
|
FROM bitnami/minideb:stretch
|
2018-02-02 09:20:37 +00:00
|
|
|
|
2018-07-26 10:40:31 +00:00
|
|
|
ENV HOME=/app
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
COPY --from=build /go-home/src/browsh/interfacer/browsh /app/browsh
|
|
|
|
|
|
|
|
RUN install_packages \
|
|
|
|
xvfb \
|
|
|
|
libgtk-3-0 \
|
|
|
|
curl \
|
|
|
|
ca-certificates \
|
|
|
|
bzip2 \
|
|
|
|
libdbus-glib-1-2 \
|
|
|
|
procps
|
2018-02-08 10:39:07 +00:00
|
|
|
|
2018-07-26 10:40:31 +00:00
|
|
|
# Block ads, etc. This includes porn just because this image is also used on the
|
|
|
|
# public SSH demo: `ssh brow.sh`.
|
2018-02-17 10:29:14 +00:00
|
|
|
RUN curl -o /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts
|
|
|
|
|
2018-07-26 10:40:31 +00:00
|
|
|
# Don't use root
|
2018-06-12 07:40:49 +00:00
|
|
|
RUN useradd -m user --home /app
|
2018-07-26 10:40:31 +00:00
|
|
|
RUN chown user:user /app
|
2018-06-12 07:40:49 +00:00
|
|
|
USER user
|
2018-02-02 09:20:37 +00:00
|
|
|
|
|
|
|
# Setup Firefox
|
2018-07-26 10:40:31 +00:00
|
|
|
ENV PATH="${HOME}/bin/firefox:${PATH}"
|
|
|
|
ADD .travis.yml .
|
|
|
|
ADD interfacer/contrib/setup_firefox.sh .
|
2018-01-28 07:26:37 +00:00
|
|
|
RUN ./setup_firefox.sh
|
2018-07-26 10:40:31 +00:00
|
|
|
RUN rm setup_firefox.sh && rm .travis.yml
|
2018-07-19 07:25:48 +00:00
|
|
|
|
2018-02-04 10:02:39 +00:00
|
|
|
# Firefox behaves quite differently to normal on its first run, so by getting
|
|
|
|
# that over and done with here when there's no user to be dissapointed means
|
|
|
|
# that all future runs will be consistent.
|
|
|
|
RUN TERM=xterm script \
|
2018-07-26 10:40:31 +00:00
|
|
|
--return \
|
|
|
|
-c "/app/browsh" \
|
|
|
|
/dev/null \
|
|
|
|
>/dev/null & \
|
|
|
|
sleep 10
|
2018-01-24 02:59:57 +00:00
|
|
|
|
2018-06-12 07:40:49 +00:00
|
|
|
CMD ["/app/browsh"]
|
2018-01-24 02:59:57 +00:00
|
|
|
|