46 lines
1.5 KiB
Docker
46 lines
1.5 KiB
Docker
FROM debian:bookworm AS builder
|
|
|
|
RUN \
|
|
--mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && apt-get install -y --no-install-recommends \
|
|
libguestfs-tools cloud-image-utils curl linux-image-amd64 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
|
|
RUN chmod 0644 /boot/vmlinuz*
|
|
|
|
RUN curl -Lo debian.qcow2 https://cloud.debian.org/images/cloud/bookworm/20260316-2418/debian-12-nocloud-amd64-20260316-2418.qcow2 && \
|
|
echo "661a11d853616ba72913ace404961a28350c58eb4041edd2c847aec932d5b99b debian.qcow2" | sha256sum --check
|
|
|
|
COPY challenge.service flagger.py ipset.save iptables.save .
|
|
|
|
RUN virt-customize -a debian.qcow2 \
|
|
--update \
|
|
--install iptables \
|
|
--install ipset \
|
|
--upload iptables.save:/iptables.save \
|
|
--upload ipset.save:/ipset.save \
|
|
--upload challenge.service:/etc/systemd/system/challenge.service \
|
|
--upload flagger.py:/flagger.py \
|
|
--run-command 'systemctl daemon-reload && systemctl enable challenge.service' \
|
|
--run-command 'rm -rf /var/lib/apt/lists/*'
|
|
|
|
FROM debian:bookworm-slim
|
|
|
|
RUN \
|
|
--mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && apt-get install -y --no-install-recommends \
|
|
qemu-system-x86 qemu-utils qemu-kvm \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
COPY --from=builder /build/debian.qcow2 /vm/
|
|
|
|
COPY flag.txt /vm/
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
|
|
RUN chmod +x /entrypoint.sh
|
|
CMD ["/entrypoint.sh"] |