aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorFabian Meumertzheim <fabian@meumertzhe.im>2021-09-14 18:03:41 +0200
committerFabian Meumertzheim <fabian@meumertzhe.im>2021-09-15 18:35:39 +0200
commitcaea02366bc398ac228751b62f4dec0ad6ad3289 (patch)
tree3262cd6b3ead3d92c2dfee917d21df67dd6585c5 /docker
parentc91c0cc5852765de8a7159204485b2af31a31484 (diff)
downloadjazzer-api-caea02366bc398ac228751b62f4dec0ad6ad3289.tar.gz
Provide a distroless Docker image
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile20
1 files changed, 20 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 00000000..e76ca0cf
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,20 @@
+FROM ubuntu:20.04 AS builder
+
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y git python3 python-is-python3 openjdk-11-jdk-headless
+
+WORKDIR /root
+RUN git clone --depth=1 https://github.com/CodeIntelligenceTesting/jazzer.git && \
+ cd jazzer && \
+ # The LLVM toolchain requires ld and ld.gold to exist, but does not use them.
+ touch /usr/bin/ld && \
+ touch /usr/bin/ld.gold && \
+ BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 \
+ ./bazelisk-linux-amd64 build --config=toolchain //agent:jazzer_agent_deploy.jar //driver:jazzer_driver
+
+FROM gcr.io/distroless/java
+
+COPY --from=builder /root/jazzer/bazel-bin/agent/jazzer_agent_deploy.jar /root/jazzer/bazel-bin/driver/jazzer_driver /app/
+ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/usr/lib/jvm/java-11-openjdk-amd64/lib/server
+WORKDIR /fuzzing
+ENTRYPOINT [ "/app/jazzer_driver", "-artifact_prefix=/fuzzing/", "--reproducer_path=/fuzzing" ]