diff --git a/dockerfiles/services/nginx-php/Dockerfile b/dockerfiles/services/nginx-php/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..5d0c7d67a3c80d446b0583a8510dccba943d12cb --- /dev/null +++ b/dockerfiles/services/nginx-php/Dockerfile @@ -0,0 +1,30 @@ +FROM nginx + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get install -y \ + mysql-client \ + php5-fpm \ + php5-mysql \ + curl && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /etc/nginx/conf.d/* && \ + rm -rf /usr/share/nginx/html/* && \ + mkdir -p /etc/nginx/external && \ + sed -i 's/access_log.*/access_log \/dev\/stdout;/g' /etc/nginx/nginx.conf && \ + sed -i 's/error_log.*/error_log \/dev\/stdout info;/g' /etc/nginx/nginx.conf && \ + sed -i 's/^pid/daemon off;\npid/g' /etc/nginx/nginx.conf && \ + sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini + +ADD basic.conf /etc/nginx/conf.d/basic.conf +ADD entrypoint.sh /opt/entrypoint.sh +RUN chmod u+x /opt/entrypoint.sh + +ADD mysql-check.sh /opt/mysql-check.sh +RUN chmod u+x /opt/mysql-check.sh + +ADD environment /etc/environment + +ENTRYPOINT ["/opt/entrypoint.sh"] +CMD ["nginx"] + diff --git a/dockerfiles/services/nginx-php/basic.conf b/dockerfiles/services/nginx-php/basic.conf new file mode 100644 index 0000000000000000000000000000000000000000..e7c093ca8607097ee4606dc87ace66e4c7383114 --- /dev/null +++ b/dockerfiles/services/nginx-php/basic.conf @@ -0,0 +1,5 @@ +# hide nginx version +server_tokens off; + +# add nosniff header (https://www.owasp.org/index.php/List_of_useful_HTTP_headers) +add_header X-Content-Type-Options nosniff; diff --git a/dockerfiles/services/nginx-php/entrypoint.sh b/dockerfiles/services/nginx-php/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..ad97c0380d965adb4620d14339b50bbd17767027 --- /dev/null +++ b/dockerfiles/services/nginx-php/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash -eux + +/etc/init.d/php5-fpm start +chmod a+rwx /var/run/php5-fpm.sock + +echo "127.0.0.1 ${URL}" >> /etc/hosts + +# exec CMD +echo ">> exec docker CMD" +echo "$@" +"$@" + diff --git a/dockerfiles/services/nginx-php/environment b/dockerfiles/services/nginx-php/environment new file mode 100644 index 0000000000000000000000000000000000000000..15719f9be59cf7ecf77b536c016d165819dd3105 --- /dev/null +++ b/dockerfiles/services/nginx-php/environment @@ -0,0 +1,6 @@ +#!/bin/bash -eux + +DB_HOST=db +DB_PORT=${DB_PORT_3306_TCP_PORT:-${DB_PORT}} +DB_PORT=${DB_1_PORT_3306_TCP_PORT:-${DB_PORT}} + diff --git a/dockerfiles/services/nginx-php/mysql-check.sh b/dockerfiles/services/nginx-php/mysql-check.sh new file mode 100644 index 0000000000000000000000000000000000000000..46a2745629d95c40c467cf020bebe98520b39783 --- /dev/null +++ b/dockerfiles/services/nginx-php/mysql-check.sh @@ -0,0 +1,23 @@ +#!/bin/bash -eux + +source /etc/environment + +echo "=> Trying to connect to MySQL/MariaDB using:" +echo "========================================================================" +echo " Database Host Address: $DB_HOST" +echo " Database Port number: $DB_PORT" +echo " Database Username: $DB_USER" +echo " Database Password: $DB_PASS" +echo "========================================================================" + +for ((i=0;i<10;i++)) +do + DB_CONNECTABLE=$(mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT -e 'status' >/dev/null 2>&1; echo "$?") + if [[ DB_CONNECTABLE -eq 0 ]]; then + exit 0 + fi + sleep 5 +done + +exit 1 +