From ffad7e3e90d1c61735a636d22eae80d0c33f2760 Mon Sep 17 00:00:00 2001 From: AndrewQuijano Date: Sun, 21 Jul 2024 04:08:45 -0400 Subject: [PATCH] Allow DockerFile to now take a USER argument so the container and host are in sync about database pre-fix --- Dockerfile | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 01a64f48..b9359583 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,30 @@ +ARG NAME=default ARG BASE_IMAGE="ubuntu:22.04" ### BASE IMAGE FROM $BASE_IMAGE AS base ARG BASE_IMAGE +ARG NAME ENV DEBIAN_FRONTEND=noninteractive ENV LLVM_DIR=/usr/lib/llvm-11 ENV PATH="/scripts:${PATH}" ENV PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - -ENV USER=afq2003 +ENV USER=${NAME} # Copy dependencies lists into container. We copy them all and then do a mv because # we need to transform base_image into a windows compatible filename which we can't # do in a COPY command. +COPY ./wheezy_panda2.qcow2 / COPY ./dependencies/* /tmp COPY ./requirements.txt /tmp +COPY ./init-host.py / + +# Copy the rest of the files COPY ./target_bins /target_bins COPY ./target_configs /target_configs COPY ./scripts /scripts -COPY ./init-host.py / +COPY ./tools/ /tools RUN mv /tmp/$(echo "$BASE_IMAGE" | sed 's/:/_/g')_build.txt /tmp/build_dep.txt && \ mv /tmp/$(echo "$BASE_IMAGE" | sed 's/:/_/g')_base.txt /tmp/base_dep.txt @@ -32,12 +37,14 @@ RUN [ -e /tmp/base_dep.txt ] && \ # Finally: Install panda debian package, you need a version that has the Dwarf2 Plugin RUN curl -LJO https://github.com/panda-re/panda/releases/download/v1.8.23/pandare_22.04.deb -RUN apt install -qq -y ./pandare_22.04.deb +RUN mv ./pandare_22.04.deb /tmp +RUN apt install -qq -y /tmp/pandare_22.04.deb RUN pip install -r /tmp/requirements.txt ### BUILD IMAGE - STAGE 2 FROM base AS builder ARG BASE_IMAGE +ARG NAME RUN [ -e /tmp/build_dep.txt ] && \ apt-get -qq update && \ @@ -48,8 +55,8 @@ RUN python3 init-host.py #### Develop setup: panda built + pypanda installed (in develop mode) - Stage 3 FROM builder AS developer - -COPY ./tools/ /tools +ARG BASE_IMAGE +ARG NAME # Essentially same as setup_container.sh RUN cd /tools/btrace && ./compile.sh @@ -60,5 +67,11 @@ RUN mkdir -p /tools/install RUN cmake -B"/tools/build" -H"/tools" -DCMAKE_INSTALL_PREFIX="/tools/install" RUN make --no-print-directory -j4 install -C "/tools/build/lavaTool" - RUN make --no-print-directory -j4 install -C "/tools/build/fbi" + +RUN useradd ${NAME} +RUN chown -R ${NAME}:${NAME} /tools/ +RUN chown -R ${NAME}:${NAME} /scripts/ +RUN chown -R ${NAME}:${NAME} /target_bins/ +RUN chown -R ${NAME}:${NAME} /target_configs/ +USER $NAME \ No newline at end of file