diff --git a/Dockerfile b/Dockerfile index 9e3aeec..a9581ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ ADD ./container_files /opt # This SP will connect via the TCP listener RUN rm /opt/bin/httpd-shib-foreground /etc/httpd/conf.d/ssl.conf && \ cp /opt/etc/httpd/conf.d/*.conf /etc/httpd/conf.d/. && \ - cp /opt/etc/shibboleth/* /etc/shibboleth/. + cp /opt/etc/shibboleth/* /etc/shibboleth/. && \ + cp /opt/usr/sbin/httpd-foreground /usr/sbin/. && chmod +x /usr/sbin/httpd-foreground EXPOSE 80 443 -CMD ["/usr/sbin/httpd"] +CMD ["/usr/sbin/httpd-foreground"] diff --git a/bin/ci-run.sh b/bin/ci-run.sh new file mode 100755 index 0000000..532ece0 --- /dev/null +++ b/bin/ci-run.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# This file will run a container in the background +source common.bash . + +docker run -d --name=$imagename $maintainer/$imagename \ No newline at end of file diff --git a/bin/ci-stop.sh b/bin/ci-stop.sh new file mode 100755 index 0000000..54ab019 --- /dev/null +++ b/bin/ci-stop.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# This file will run a container in the background +source common.bash . + +echo "Cleaning up Docker image($maintainer/$imagename)" +docker stop $imagename >> /dev/null +docker rm $imagename diff --git a/container_files/etc/shibboleth/shibboleth2.xml b/container_files/etc/shibboleth/shibboleth2.xml index 916eae9..1dbe2fc 100644 --- a/container_files/etc/shibboleth/shibboleth2.xml +++ b/container_files/etc/shibboleth/shibboleth2.xml @@ -5,6 +5,116 @@ xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" clockSkew="180"> - + + - \ No newline at end of file + + + + + + + + + + + + + + SAML2 SAML1 + + + SAML2 Local + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/container_files/usr/sbin/httpd-foreground b/container_files/usr/sbin/httpd-foreground new file mode 100755 index 0000000..feb1ae2 --- /dev/null +++ b/container_files/usr/sbin/httpd-foreground @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +# Apache gets grumpy about PID files pre-existing +rm -f /run/httpd/httpd.pid + +exec httpd -DFOREGROUND \ No newline at end of file diff --git a/tests/image.bats b/tests/image.bats index b6924eb..66f28f8 100644 --- a/tests/image.bats +++ b/tests/image.bats @@ -13,4 +13,12 @@ load ../common @test "shibboleth2.xml using a TCP Listener configuration" { docker run -i $maintainer/$imagename grep TCPListener /etc/shibboleth/shibboleth2.xml +} + +@test "Shibboleth configuration is well formed" { + docker run -i $maintainer/$imagename xmlwf /etc/shibboleth/shibboleth2.xml +} + +@test "Shibboleth configuration is valid" { + docker run -i $maintainer/$imagename /usr/sbin/shibd -tc /etc/shibboleth/shibboleth2.xml } \ No newline at end of file diff --git a/tests/running.bats b/tests/running.bats new file mode 100644 index 0000000..4161d23 --- /dev/null +++ b/tests/running.bats @@ -0,0 +1,10 @@ +#!/usr/bin/env bats + +load ../common + +# These tests assume the pipeline will start and stop the container. + +@test "Leaves running process" { + result="$(docker ps | grep $imagename)" + [ "$result" != '' ] +} \ No newline at end of file