Skip to content

Commit 719be50

Browse files
authored
Update Dockerfile
1 parent 6375f6a commit 719be50

File tree

1 file changed

+32
-52
lines changed

1 file changed

+32
-52
lines changed

compose/local/django/Dockerfile

+32-52
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,59 @@
1-
# syntax=docker/dockerfile:1.3
2-
FROM --platform=$BUILDPLATFORM python:3.12-slim-bookworm AS common-base
3-
ARG TARGETARCH
1+
FROM python:3.12.4-slim-bookworm as common-base
42

5-
ENV DJANGO_SETTINGS_MODULE=config.settings.local
6-
ENV PYTHONUNBUFFERED=1
7-
ENV PYTHONDONTWRITEBYTECODE=1
3+
ENV DJANGO_SETTINGS_MODULE config.settings.local
4+
ENV PYTHONUNBUFFERED 1
5+
ENV PYTHONDONTWRITEBYTECODE 1
86

97
ARG local_folder=/uploads
108

119
RUN apt-get update \
10+
# dependencies for building Python packages
1211
&& apt-get install -y --no-install-recommends build-essential \
12+
# ldap
1313
libsasl2-dev python3-dev libldap2-dev libssl-dev \
14-
libpq-dev libmagic1 p7zip-full gettext git \
14+
# psycopg2 dependencies
15+
libpq-dev \
16+
# archive
17+
libmagic1 p7zip-full \
18+
# Translations dependencies
19+
gettext \
20+
# git for cloning
21+
git \
1522
&& apt-get clean \
1623
&& rm -rf /var/lib/apt/lists/*
1724

25+
# App running in /app
1826
RUN mkdir -p /app
1927

20-
FROM common-base AS base-builder
28+
FROM common-base as base-builder
2129
RUN apt-get update \
22-
&& apt-get install --no-install-recommends -y curl unzip \
23-
automake libtool make gcc pkg-config flex bison libssl-dev libjansson-dev libmagic-dev \
30+
&& apt-get install --no-install-recommends -y \
31+
# utils
32+
curl unzip \
33+
# cleaning up unused files
2434
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
2535
&& rm -rf /var/lib/apt/lists/*
2636

27-
FROM base-builder AS yara-builder
28-
WORKDIR /tmp
29-
RUN git clone --recursive https://github.com/VirusTotal/yara.git
30-
WORKDIR /tmp/yara
31-
RUN ./bootstrap.sh \
32-
&& ./configure --enable-cuckoo --enable-magic --enable-dotnet --with-crypto \
33-
&& make \
34-
&& make install \
35-
&& echo "Install yara-python..."
36-
WORKDIR /tmp
37-
RUN git clone --branch v4.3.x --recursive https://github.com/VirusTotal/yara-python
38-
WORKDIR /tmp/yara-python
39-
RUN python setup.py build
40-
41-
FROM common-base AS go-builder
42-
ARG TARGETARCH
43-
RUN apt-get update && apt-get install -y curl
44-
RUN echo "Building for platform: $TARGETARCH" \
45-
&& if [ "$TARGETARCH" = "amd64" ]; then \
46-
apt-get install -y gcc-multilib \
47-
&& curl -Lo go.tar.gz https://dl.google.com/go/go1.22.0.linux-amd64.tar.gz \
48-
&& tar -C /usr/local -xzf go.tar.gz \
49-
&& rm go.tar.gz \
50-
&& git clone https://github.com/volatilityfoundation/dwarf2json.git \
51-
&& cd dwarf2json \
52-
&& CC=gcc /usr/local/go/bin/go build; \
53-
elif [ "$TARGETARCH" = "arm64" ]; then \
54-
apt-get install -y gcc-aarch64-linux-gnu \
55-
&& curl -Lo go.tar.gz https://dl.google.com/go/go1.22.0.linux-arm64.tar.gz \
56-
&& tar -C /usr/local -xzf go.tar.gz \
57-
&& rm go.tar.gz \
58-
&& git clone https://github.com/volatilityfoundation/dwarf2json.git \
59-
&& cd dwarf2json \
60-
&& CC=aarch64-linux-gnu-gcc /usr/local/go/bin/go build; \
61-
else \
62-
echo "Unsupported platform: $TARGETARCH" && exit 1; \
63-
fi
37+
FROM golang:alpine3.20 as go-builder
38+
RUN apk add git
39+
WORKDIR /
40+
RUN git clone https://github.com/volatilityfoundation/dwarf2json.git
41+
WORKDIR /dwarf2json
42+
RUN /usr/local/go/bin/go build
6443

6544
FROM common-base
6645
WORKDIR /
6746
COPY ./requirements /requirements
68-
RUN pip install uv==0.1.21 -e git+https://github.com/volatilityfoundation/volatility3.git@55dd39f2ba60ffdd2126b7ea011940f0df42815a#egg=volatility3 \
47+
RUN pip install uv==0.2.31 -e git+https://github.com/dadokkio/volatility3.git@f740146f692ba288f376a939b24b1c1a8f7cf5e2#egg=volatility3 \
6948
&& uv pip install --no-cache --system -r /requirements/base.txt
7049

7150
COPY ./compose/local/__init__.py /src/volatility3/volatility3/framework/constants/__init__.py
7251

52+
#EXPERIMENTAL SUPPORT FOR ARM64
53+
COPY ./compose/local/linux.py /src/volatility3/volatility3/framework/automagic/linux.py
54+
COPY ./compose/local/arm.py /src/volatility3/volatility3/framework/layers/arm.py
55+
RUN sed -i 's/\["Intel32", "Intel64"\]/\["Intel32", "Intel64", "AArch64"\]/g' /src/volatility3/volatility3/framework/plugins/linux/*.py
56+
7357
RUN mkdir -p $local_folder /maxmind
7458
COPY ./compose/local/maxmind /maxmind
7559

@@ -85,9 +69,5 @@ RUN chmod +x /start
8569

8670
COPY --from=go-builder /dwarf2json/dwarf2json /dwarf2json/dwarf2json
8771

88-
COPY --from=yara-builder /tmp/yara-python/ /tmp/
89-
WORKDIR /tmp
90-
RUN python setup.py install
91-
9272
WORKDIR /app
9373
ENTRYPOINT ["/entrypoint"]

0 commit comments

Comments
 (0)