2022-07-18 16:57:46 +00:00
|
|
|
FROM bitnami/minideb:bullseye as build
|
2018-07-26 10:40:31 +00:00
|
|
|
|
|
|
|
RUN install_packages \
|
|
|
|
curl \
|
|
|
|
ca-certificates \
|
|
|
|
git \
|
|
|
|
autoconf \
|
|
|
|
automake \
|
|
|
|
g++ \
|
|
|
|
protobuf-compiler \
|
|
|
|
zlib1g-dev \
|
|
|
|
libncurses5-dev \
|
|
|
|
libssl-dev \
|
|
|
|
pkg-config \
|
|
|
|
libprotobuf-dev \
|
2022-07-18 16:57:46 +00:00
|
|
|
make \
|
|
|
|
bzip2
|
|
|
|
|
|
|
|
# Helper scripts
|
|
|
|
WORKDIR /build
|
|
|
|
ADD .git .git
|
|
|
|
ADD .github .github
|
|
|
|
ADD scripts scripts
|
|
|
|
ADD ctl.sh .
|
2018-07-26 10:40:31 +00:00
|
|
|
|
2022-07-18 16:58:27 +00:00
|
|
|
# Install Golang and Browsh
|
2018-07-26 10:40:31 +00:00
|
|
|
ENV GOROOT=/go
|
|
|
|
ENV GOPATH=/go-home
|
|
|
|
ENV PATH=$GOROOT/bin:$GOPATH/bin:$PATH
|
|
|
|
ENV BASE=$GOPATH/src/browsh/interfacer
|
|
|
|
ADD interfacer $BASE
|
2022-07-18 16:58:27 +00:00
|
|
|
WORKDIR $BASE
|
|
|
|
RUN /build/ctl.sh install_golang $BASE
|
2022-07-18 16:57:46 +00:00
|
|
|
RUN /build/ctl.sh build_browsh_binary $BASE
|
2018-07-26 10:40:31 +00:00
|
|
|
|
|
|
|
###########################
|
|
|
|
# Actual final Docker image
|
|
|
|
###########################
|
2022-07-18 16:57:46 +00:00
|
|
|
FROM bitnami/minideb:bullseye
|
2018-02-02 09:20:37 +00:00
|
|
|
|
2018-07-26 10:40:31 +00:00
|
|
|
ENV HOME=/app
|
2022-07-18 16:57:46 +00:00
|
|
|
WORKDIR $HOME
|
2018-07-26 10:40:31 +00:00
|
|
|
|
2022-07-18 16:57:46 +00:00
|
|
|
COPY --from=build /go-home/src/browsh/interfacer/browsh /app/bin/browsh
|
2018-07-26 10:40:31 +00:00
|
|
|
|
|
|
|
RUN install_packages \
|
|
|
|
xvfb \
|
|
|
|
libgtk-3-0 \
|
|
|
|
curl \
|
|
|
|
ca-certificates \
|
|
|
|
libdbus-glib-1-2 \
|
2022-07-18 16:57:46 +00:00
|
|
|
procps \
|
|
|
|
libasound2 \
|
2023-01-29 14:31:55 +00:00
|
|
|
libxtst6 \
|
|
|
|
firefox-esr
|
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`.
|
2022-07-18 16:57:46 +00:00
|
|
|
RUN curl \
|
|
|
|
-o /etc/hosts \
|
|
|
|
https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts
|
2018-02-17 10:29:14 +00:00
|
|
|
|
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
|
|
|
|
2022-07-18 16:57:46 +00:00
|
|
|
ENV PATH="${HOME}/bin:${HOME}/bin/firefox:${PATH}"
|
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 \
|
2022-07-18 16:57:46 +00:00
|
|
|
-c "/app/bin/browsh" \
|
2018-07-26 10:40:31 +00:00
|
|
|
/dev/null \
|
|
|
|
>/dev/null & \
|
|
|
|
sleep 10
|
2018-01-24 02:59:57 +00:00
|
|
|
|
2022-07-26 02:34:45 +00:00
|
|
|
ENTRYPOINT ["/app/bin/browsh"]
|
2018-01-24 02:59:57 +00:00
|
|
|
|