16
16
# * Install python3-venv for the built-in Python3 venv module (not installed by default).
17
17
# * Install gcloud CLI from Google Cloud's apt repository.
18
18
19
- FROM debian:12
19
+ # Stage 1: Build
20
+ FROM debian:12 AS build
20
21
# Install packages used by the Experiment. Python and Git are required for the experiment.
21
22
# Curl, certs, and gnupg are required to install gcloud.
22
23
RUN apt-get update && \
@@ -32,27 +33,27 @@ RUN apt-get update && \
32
33
wget2 \
33
34
clang-format && \
34
35
python3 -m venv /venv
36
+
35
37
# Install gcloud cli.
36
38
RUN echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
37
39
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
38
40
apt-get update -y && \
39
41
apt-get install google-cloud-cli -y
40
- # Set timezone to Australia/Sydney.
41
- ENV TZ='Australia/Sydney'
42
-
43
-
42
+
44
43
# Install Docker for OSS-Fuzz.
45
44
# Add Docker's official GPG key:
46
45
RUN apt-get install ca-certificates curl gnupg && \
47
46
install -m 0755 -d /etc/apt/keyrings && \
48
47
curl -fsSL https://download.docker.com/linux/debian/gpg \
49
48
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
50
49
chmod a+r /etc/apt/keyrings/docker.gpg
50
+
51
51
# Add the repository to Apt sources:
52
52
RUN echo \
53
53
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
54
54
$(. /etc/os-release && echo " $VERSION_CODENAME") stable" | \
55
55
tee /etc/apt/sources.list.d/docker.list > /dev/null
56
+
56
57
RUN apt-get update && \
57
58
apt-get install -y \
58
59
docker-ce \
@@ -61,8 +62,17 @@ RUN apt-get update && \
61
62
docker-buildx-plugin \
62
63
docker-compose-plugin
63
64
64
-
65
65
COPY . /experiment
66
66
WORKDIR /experiment
67
- RUN /venv/bin/pip install --disable-pip-version-check -r requirements.txt
68
- ENTRYPOINT ["/venv/bin/python3" , "./report/docker_run.py" ]
67
+ RUN /venv/bin/pip install --disable-pip-version-check --default-timeout=100 -r requirements.txt
68
+
69
+ # Stage 2: Runtime
70
+ FROM debian:12
71
+ # Set timezone to Australia/Sydney.
72
+ ENV TZ='Australia/Sydney'
73
+
74
+ COPY --from=build /venv /venv
75
+ COPY --from=build /experiment /experiment
76
+ WORKDIR /experiment
77
+
78
+ ENTRYPOINT ["/venv/bin/python3" , "./report/docker_run.py" ]
0 commit comments