Files
infix/test/docker/Dockerfile
T
Tobias WaldekranzandJoachim Wiberg 8eb67c1d13 test: Fixup permissions of generated files when using docker
Since containers managed by docker runs as root, files created in bind
mounted volumes will be owned by root:root. This is a problem for
files generated during test execution, as the calling user does not
have permission to remove them.

Therefore, add a wrapper entrypoint that hooks up an exit handler that
will fixup the permissions before exiting the container.
2024-05-24 19:10:10 +02:00

51 lines
1.2 KiB
Docker

FROM alpine:3.18.0
RUN apk add --no-cache \
busybox-extras \
e2fsprogs \
fakeroot \
gcc \
graphviz \
iproute2 \
iputils \
jq \
libc-dev \
libyang-dev \
linux-headers \
openssh-client \
python3-dev \
qemu-img \
qemu-system-x86_64 \
ruby-mustache \
socat \
squashfs-tools \
sshpass \
tcpdump \
tshark \
make
ARG MTOOL_VERSION="3.0"
RUN wget https://github.com/troglobit/mtools/releases/download/v3.0/mtools-$MTOOL_VERSION.tar.gz -O /tmp/mtools-$MTOOL_VERSION.tar.gz
RUN cd /tmp/ && tar zxvf mtools-$MTOOL_VERSION.tar.gz
RUN cd /tmp/mtools-$MTOOL_VERSION && make && make install
# Alpine's QEMU package does not bundle this for some reason, copied
# from Ubuntu
COPY qemu-ifup /etc
# Needed to let qeneth find mustache(1)
ENV PATH="${PATH}:/usr/lib/ruby/gems/3.2.0/bin"
# Install all python packages used by the tests
COPY init-venv.sh /root
COPY pip-requirements.txt /root
# Add bootstrap YANG models, the rest will be downloaded from the device
ADD yang /root/yang
RUN ~/init-venv.sh ~/pip-requirements.txt
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["/bin/sh"]