Skip to content

Commit 7935edd

Browse files
author
Davide Arcuri
committed
2.2.3
1 parent 8ae127a commit 7935edd

File tree

1 file changed

+52
-27
lines changed

1 file changed

+52
-27
lines changed

compose/local/django/Dockerfile

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

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

79
ARG local_folder=/uploads
810

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

25-
# App running in /app
2618
RUN mkdir -p /app
2719

28-
FROM common-base as base-builder
20+
FROM common-base AS base-builder
2921
RUN apt-get update \
30-
&& apt-get install --no-install-recommends -y \
31-
# utils
32-
curl unzip \
33-
# cleaning up unused files
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 \
3424
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
3525
&& rm -rf /var/lib/apt/lists/*
3626

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
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
4364

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

5071
COPY ./compose/local/__init__.py /src/volatility3/volatility3/framework/constants/__init__.py
@@ -64,5 +85,9 @@ RUN chmod +x /start
6485

6586
COPY --from=go-builder /dwarf2json/dwarf2json /dwarf2json/dwarf2json
6687

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

0 commit comments

Comments
 (0)