Skip to content

Commit

Permalink
[WIP] I need target_config and target_bins in LAVA Docker container a…
Browse files Browse the repository at this point in the history
…nd allow DockerFile to now take a USER argument so the container and host are in sync about database pre-fix
  • Loading branch information
AndrewQuijano committed Jul 24, 2024
1 parent c013ce2 commit ca0a9c4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
2 changes: 0 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
target_bins
target_configs
target_injections
tests
docs
Expand Down
34 changes: 27 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
ARG NAME=default
ARG BASE_IMAGE="ubuntu:22.04"

### BASE IMAGE
FROM $BASE_IMAGE as base
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=${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 ./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
Expand All @@ -26,23 +37,26 @@ 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 && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends $(cat /tmp/build_dep.txt | grep -o '^[^#]*') && \
apt-get clean

#### Develop setup: panda built + pypanda installed (in develop mode) - Stage 3
FROM builder as developer
RUN python3 init-host.py

COPY ./tools/ /tools
COPY ./scripts /scripts
#### Develop setup: panda built + pypanda installed (in develop mode) - Stage 3
FROM builder AS developer
ARG BASE_IMAGE
ARG NAME

# Essentially same as setup_container.sh
RUN cd /tools/btrace && ./compile.sh
Expand All @@ -53,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

0 comments on commit ca0a9c4

Please sign in to comment.