Docker: Move to alpine; Use multistage building

This commit is contained in:
ps1337 2019-07-20 01:42:54 +02:00 committed by xarkes
parent 6c40191cce
commit cbdc4b70e1
2 changed files with 42 additions and 23 deletions

View File

@ -1,35 +1,53 @@
FROM ubuntu:rolling FROM alpine:edge AS builder
LABEL maintainer "pschmied <ps1337@mailbox.org>" LABEL maintainer "Philipp Schmied <ps1337@mailbox.org>"
# Prevent build fails because of interactive scripts when compiling # Prevent build fails because of interactive scripts when compiling
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
# Dependencies # Dependencies
RUN apt-get update && \ RUN apk add --no-cache \
apt-get -y install \ bash \
cmake \ cmake \
curl \ curl \
g++ \ g++ \
gcc \ gcc \
git-core \ git \
gosu \ linux-headers \
libqt5svg5-dev \ make \
make \ pkgconfig \
pkg-config \ python3-dev \
python3 \ qt5-qtbase \
python3-dev \ qt5-qtsvg-dev \
qt5-default \ qt5-qttools-dev \
qtbase5-dev \ unzip \
qtwebengine5-dev \ wget
unzip \
wget
# Get, compile and test Cutter from master branch # Get, compile and test Cutter from master branch
RUN git clone --recurse-submodules https://github.com/radareorg/cutter.git /opt/cutter && \ RUN git clone --recurse-submodules https://github.com/radareorg/cutter.git /opt/cutter
cd /opt/cutter && \ RUN cd /opt/cutter && \
bash build.sh && \ bash build.sh && \
bash -c 'if [[ ! -x "/opt/cutter/build/Cutter" ]]; then exit -1; fi' bash -c 'if [[ ! -x "/opt/cutter/build/Cutter" ]]; then exit -1; fi'
FROM alpine:edge AS runner
# Add the dependencies we need for running
RUN apk add --no-cache \
bash \
libuuid \
make \
python3 \
qt5-qtbase \
shadow \
su-exec
# Get the compiled Cutter, r2 libs and bins from the builder
COPY --from=builder /opt/cutter /opt/cutter
COPY --from=builder /usr/lib /usr/lib
COPY --from=builder /usr/share/radare2 /usr/share/radare2
RUN cd /opt/cutter/radare2/binr && \
make install && \
make symstall install-symlink
# Add r2 user # Add r2 user
RUN useradd r2 RUN useradd r2
@ -42,4 +60,5 @@ RUN mkdir /var/sharedFolder && \
WORKDIR /home/r2 WORKDIR /home/r2
ADD entrypoint.sh /usr/local/bin/entrypoint.sh ADD entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

View File

@ -6,4 +6,4 @@ usermod -u $LOCAL_USER_ID $USERNAME
usermod -g $LOCAL_GROUP_ID $USERNAME usermod -g $LOCAL_GROUP_ID $USERNAME
export HOME=/home/$USERNAME export HOME=/home/$USERNAME
exec gosu $USERNAME "/opt/cutter/build/Cutter" $@ exec su-exec $USERNAME "/opt/cutter/build/Cutter" $@