diff --git a/Dockerfile b/Dockerfile index 11c61c85721727eaea09a8c440970967abf20691..413c5767e90e66371e03d16107b0a6aec4aea925 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,6 +45,12 @@ RUN php /var/www/html/EventsAPI/utils/install.php # DO not allow access to root doc RUN echo "deny from all" > /var/www/html/.htaccess +ADD ./servercerts /etc/ssl/certs/ +ADD setup.sh /tmp/ +WORKDIR /tmp +RUN ./setup.sh +RUN rm -rf /tmp/* + # Default command CMD ["apachectl", "-D", "FOREGROUND"] diff --git a/build_docker.sh b/build_docker.sh new file mode 100755 index 0000000000000000000000000000000000000000..67ff376d91ed4b60c73a71c3da84340cd1a8951d --- /dev/null +++ b/build_docker.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +APACHE_SSL_CERT=./configs/certificates/ssl-cert-eventsapi.pem +APACHE_SSL_CERT_KEY=./configs/certificates/ssl-cert-eventsapi.key + +# Create local relative folder for certificates +mkdir ./servercerts +if test -e "$APACHE_SSL_CERT";then + cp $APACHE_SSL_CERT ./servercerts/ssl-cert-eventsapi.pem +fi +if test -e "$APACHE_SSL_CERT_KEY";then + cp $APACHE_SSL_CERT_KEY ./servercerts/ssl-cert-eventsapi.key +fi + +docker build -t karbach/eventsapi:v1 . + +#Clear automatically created folders +rm -rf ./servercerts diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..e67ecd5d224bc571a99189dbcaa590e1a63f6781 --- /dev/null +++ b/setup.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [[ $(/usr/bin/id -u) -ne 0 ]]; then + echo "This script requires root privileges." >&2 + exit 1 +fi + +#Adjust the certificate to use, if a special certificate was injected +SPECIALCERT=/etc/ssl/certs/ssl-cert-eventsapi.pem +KEYNAME=ssl-cert-eventsapi.key +SPECIALCERTKEY="/etc/ssl/certs/"$KEYNAME +SSLCONFFILE=/etc/apache2/sites-available/default-ssl.conf +if test -e "$SPECIALCERT";then + chmod 644 $SPECIALCERT + sed -i -e "\|^[ \t]\+SSLCertificateFile|s|SSLCertificateFile[ \t]\+.*|SSLCertificateFile "$SPECIALCERT"|" $SSLCONFFILE +fi + +if test -e "$SPECIALCERTKEY";then + mv $SPECIALCERTKEY /etc/ssl/private + chmod 640 "/etc/ssl/private/"$KEYNAME + chown root:ssl-cert "/etc/ssl/private/"$KEYNAME + sed -i -e "\|^[ \t]\+SSLCertificateKeyFile|s|SSLCertificateKeyFile[ \t]\+.*|SSLCertificateKeyFile /etc/ssl/private/"$KEYNAME"|" $SSLCONFFILE +fi + diff --git a/tests/runtests.sh b/tests/runtests.sh old mode 100644 new mode 100755