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
4
2
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
8
6
9
7
ARG local_folder=/uploads
10
8
11
9
RUN apt-get update \
10
+ # dependencies for building Python packages
12
11
&& apt-get install -y --no-install-recommends build-essential \
12
+ # ldap
13
13
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 \
15
22
&& apt-get clean \
16
23
&& rm -rf /var/lib/apt/lists/*
17
24
25
+ # App running in /app
18
26
RUN mkdir -p /app
19
27
20
- FROM common-base AS base-builder
28
+ FROM common-base as base-builder
21
29
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
24
34
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
25
35
&& rm -rf /var/lib/apt/lists/*
26
36
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
64
43
65
44
FROM common-base
66
45
WORKDIR /
67
46
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 \
69
48
&& uv pip install --no-cache --system -r /requirements/base.txt
70
49
71
50
COPY ./compose/local/__init__.py /src/volatility3/volatility3/framework/constants/__init__.py
72
51
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
+
73
57
RUN mkdir -p $local_folder /maxmind
74
58
COPY ./compose/local/maxmind /maxmind
75
59
@@ -85,9 +69,5 @@ RUN chmod +x /start
85
69
86
70
COPY --from=go-builder /dwarf2json/dwarf2json /dwarf2json/dwarf2json
87
71
88
- COPY --from=yara-builder /tmp/yara-python/ /tmp/
89
- WORKDIR /tmp
90
- RUN python setup.py install
91
-
92
72
WORKDIR /app
93
73
ENTRYPOINT ["/entrypoint" ]
0 commit comments