mirror of https://github.com/crytic/slither
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.2 KiB
43 lines
1.2 KiB
# syntax=docker/dockerfile:1.3
|
|
FROM ubuntu:jammy AS python-wheels
|
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
gcc \
|
|
python3-dev \
|
|
python3-pip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . /slither
|
|
|
|
RUN cd /slither && \
|
|
echo pip3 install --no-cache-dir --upgrade pip && \
|
|
pip3 wheel -w /wheels . solc-select pip setuptools wheel
|
|
|
|
|
|
FROM ubuntu:jammy AS final
|
|
|
|
LABEL name=slither
|
|
LABEL src="https://github.com/trailofbits/slither"
|
|
LABEL creator=trailofbits
|
|
LABEL dockerfile_maintenance=trailofbits
|
|
LABEL desc="Static Analyzer for Solidity"
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends python3-pip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN useradd -m slither
|
|
USER slither
|
|
|
|
COPY --chown=slither:slither . /home/slither/slither
|
|
WORKDIR /home/slither/slither
|
|
|
|
ENV PATH="/home/slither/.local/bin:${PATH}"
|
|
|
|
# no-index ensures we install the freshly-built wheels
|
|
RUN --mount=type=bind,target=/mnt,source=/wheels,from=python-wheels \
|
|
pip3 install --user --no-cache-dir --upgrade --no-index --find-links /mnt pip slither-analyzer solc-select
|
|
|
|
RUN solc-select install 0.4.25 && solc-select use 0.4.25
|
|
|
|
CMD /bin/bash
|
|
|