From 9ef481633a7af8e7142e8c6cf0c912f6b254456a Mon Sep 17 00:00:00 2001 From: Alberto Bertogli Date: Mon, 26 Mar 2018 01:13:39 +0100 Subject: [PATCH] test: Add Dockerfile This patch adds a Docker configuration file, to build an image that can run the integration and stress tests. It might be used for configuring automated testing infrastructure in subsequent patches. --- test/Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 test/Dockerfile diff --git a/test/Dockerfile b/test/Dockerfile new file mode 100644 index 0000000..8f61212 --- /dev/null +++ b/test/Dockerfile @@ -0,0 +1,42 @@ +# Docker file for creating a docker container that can run the tests. +# +# Create the image: +# docker build -t chasquid-test -f test/Dockerfile . +# +# Run the tests: +# docker run --rm chasquid-test make test +# +# Get a shell inside the image (for debugging): +# docker run -it --entrypoint=/bin/bash chasquid-test + +FROM golang:latest + +WORKDIR /go/src/blitiri.com.ar/go/chasquid +COPY . . + +# Make debconf/frontend non-interactive, to avoid distracting output about the +# lack of $TERM. +ENV DEBIAN_FRONTEND noninteractive + +# Install the basics for the integration tests. +RUN apt-get update -q +RUN apt-get install -y -q python3 msmtp + +# Packages for the (optional) dovecot integration test. +RUN apt-get install -y -q gettext-base dovecot-imapd + +# Packages for the (optional) exim integration test. +RUN apt-get install -y -q exim4-daemon-light +RUN cd test/t-02-exim && mkdir -p .exim4 && ln -s /usr/sbin/exim4 .exim4/ + +RUN go get -d ./... +RUN go install ./... + +# Don't run the tests as root: it makes some integration tests more difficult, +# as for example Exim has hard-coded protections against running as root. +RUN useradd -m chasquid +RUN chown -R chasquid:chasquid . +USER chasquid + +# Tests expect the $USER variable set. +ENV USER chasquid