From 9c1338c0c22e45a3b955de5af2358a415e520ad6 Mon Sep 17 00:00:00 2001 From: heinzel Date: Fri, 12 Apr 2019 21:55:09 +0200 Subject: [PATCH] Initial --- Dockerfile | 17 ++++++++++ Makefile | 18 ++++++++++ .../etc/httpd/conf.d/defaults.conf | 6 ++++ .../etc/httpd/conf.d/django-test.conf | 18 ++++++++++ container-files/etc/httpd/conf.d/welcome.conf | 0 .../etc/httpd/conf.d/zzz-lock-down.conf | 15 +++++++++ .../etc/httpd/conf.modules.d/00-base.conf | 33 +++++++++++++++++++ .../etc/httpd/conf.modules.d/00-dav.conf | 0 .../etc/httpd/conf.modules.d/00-lua.conf | 0 .../etc/httpd/conf.modules.d/00-proxy.conf | 0 .../etc/httpd/conf.modules.d/10-h2.conf | 0 .../etc/httpd/conf.modules.d/10-proxy_h2.conf | 0 .../usr/local/bin/install-django-test.sh | 24 ++++++++++++++ container-files/usr/local/sbin/start-httpd.sh | 2 ++ 14 files changed, 133 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 container-files/etc/httpd/conf.d/defaults.conf create mode 100644 container-files/etc/httpd/conf.d/django-test.conf create mode 100644 container-files/etc/httpd/conf.d/welcome.conf create mode 100644 container-files/etc/httpd/conf.d/zzz-lock-down.conf create mode 100644 container-files/etc/httpd/conf.modules.d/00-base.conf create mode 100644 container-files/etc/httpd/conf.modules.d/00-dav.conf create mode 100644 container-files/etc/httpd/conf.modules.d/00-lua.conf create mode 100644 container-files/etc/httpd/conf.modules.d/00-proxy.conf create mode 100644 container-files/etc/httpd/conf.modules.d/10-h2.conf create mode 100644 container-files/etc/httpd/conf.modules.d/10-proxy_h2.conf create mode 100755 container-files/usr/local/bin/install-django-test.sh create mode 100755 container-files/usr/local/sbin/start-httpd.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..685a83d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM fedora + +RUN dnf -y update && \ + dnf -y install httpd && \ + dnf -y install python3-mod_wsgi && \ + dnf -y install git && \ + dnf clean all + +COPY container-files/ / + +RUN /usr/local/bin/install-django-test.sh + +EXPOSE 80 + +ENTRYPOINT ["/usr/local/sbin/start-httpd.sh"] +CMD ["--"] + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3eea17a --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +APPLICATION_NAME := django-test +IMAGE_NAME := heinzel/$(APPLICATION_NAME) + +DOCKER := docker + +.PHONY: default help image run + +default: image + +help: + @echo "There is no help." + +image: + $(DOCKER) build -t $(IMAGE_NAME) . + +test-run: + $(DOCKER) run -ti -p 80:80 --name $(APPLICATION_NAME) $(IMAGE_NAME) + $(DOCKER) rm $(APPLICATION_NAME) diff --git a/container-files/etc/httpd/conf.d/defaults.conf b/container-files/etc/httpd/conf.d/defaults.conf new file mode 100644 index 0000000..11b7062 --- /dev/null +++ b/container-files/etc/httpd/conf.d/defaults.conf @@ -0,0 +1,6 @@ +# /etc/httpd/conf.d/defaults.conf + +ServerAdmin heinzel@heinzelwelt.de +ServerTokens Prod +ErrorLog /dev/stderr +LogLevel info diff --git a/container-files/etc/httpd/conf.d/django-test.conf b/container-files/etc/httpd/conf.d/django-test.conf new file mode 100644 index 0000000..b6d76a2 --- /dev/null +++ b/container-files/etc/httpd/conf.d/django-test.conf @@ -0,0 +1,18 @@ +WSGIDaemonProcess django-test processes=1 threads=4 display-name=django-test python-home=/var/www/wsgi/django-test/python python-path=/var/www/wsgi/django-test/django + +Alias /static/ "/var/www/wsgi/django-test/django/var/www/static/" + + AllowOverride None + Require all granted + + +WSGIScriptAlias / "/var/www/wsgi/django-test/django/main/wsgi.py" + + WSGIProcessGroup django-test + WSGIPassAuthorization On + AllowOverride None + Options FollowSymLinks + + Require all granted + + diff --git a/container-files/etc/httpd/conf.d/welcome.conf b/container-files/etc/httpd/conf.d/welcome.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/etc/httpd/conf.d/zzz-lock-down.conf b/container-files/etc/httpd/conf.d/zzz-lock-down.conf new file mode 100644 index 0000000..821871e --- /dev/null +++ b/container-files/etc/httpd/conf.d/zzz-lock-down.conf @@ -0,0 +1,15 @@ +# /etc/httpd/conf.d/zzz-lock-down.conf + + + Require all denied + + + Require all denied + + + Require all denied + + + Require all denied + + diff --git a/container-files/etc/httpd/conf.modules.d/00-base.conf b/container-files/etc/httpd/conf.modules.d/00-base.conf new file mode 100644 index 0000000..8476a62 --- /dev/null +++ b/container-files/etc/httpd/conf.modules.d/00-base.conf @@ -0,0 +1,33 @@ +# +# This file loads most of the modules included with the Apache HTTP +# Server itself. +# + +LoadModule access_compat_module modules/mod_access_compat.so +LoadModule actions_module modules/mod_actions.so +LoadModule alias_module modules/mod_alias.so +LoadModule allowmethods_module modules/mod_allowmethods.so +LoadModule auth_basic_module modules/mod_auth_basic.so +LoadModule authn_core_module modules/mod_authn_core.so +LoadModule authn_file_module modules/mod_authn_file.so +LoadModule authz_core_module modules/mod_authz_core.so +LoadModule authz_groupfile_module modules/mod_authz_groupfile.so +LoadModule authz_host_module modules/mod_authz_host.so +LoadModule authz_user_module modules/mod_authz_user.so +LoadModule autoindex_module modules/mod_autoindex.so +LoadModule deflate_module modules/mod_deflate.so +LoadModule dir_module modules/mod_dir.so +LoadModule env_module modules/mod_env.so +LoadModule expires_module modules/mod_expires.so +LoadModule headers_module modules/mod_headers.so +LoadModule info_module modules/mod_info.so +LoadModule log_config_module modules/mod_log_config.so +LoadModule mime_magic_module modules/mod_mime_magic.so +LoadModule mime_module modules/mod_mime.so +LoadModule negotiation_module modules/mod_negotiation.so +LoadModule request_module modules/mod_request.so +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule setenvif_module modules/mod_setenvif.so +LoadModule status_module modules/mod_status.so +LoadModule unixd_module modules/mod_unixd.so + diff --git a/container-files/etc/httpd/conf.modules.d/00-dav.conf b/container-files/etc/httpd/conf.modules.d/00-dav.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/etc/httpd/conf.modules.d/00-lua.conf b/container-files/etc/httpd/conf.modules.d/00-lua.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/etc/httpd/conf.modules.d/00-proxy.conf b/container-files/etc/httpd/conf.modules.d/00-proxy.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/etc/httpd/conf.modules.d/10-h2.conf b/container-files/etc/httpd/conf.modules.d/10-h2.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/etc/httpd/conf.modules.d/10-proxy_h2.conf b/container-files/etc/httpd/conf.modules.d/10-proxy_h2.conf new file mode 100644 index 0000000..e69de29 diff --git a/container-files/usr/local/bin/install-django-test.sh b/container-files/usr/local/bin/install-django-test.sh new file mode 100755 index 0000000..6877c17 --- /dev/null +++ b/container-files/usr/local/bin/install-django-test.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +DJANGO_PROJECT_NAME="django-test" +PROJECT_REPO_URL="git+https://heinzelwelt.de/vcs/python/django-test" + +BASE_DIR="/var/www/wsgi/${DJANGO_PROJECT_NAME}" +VENV_DIR="python" +VENV_PATH="${BASE_DIR}/${VENV_DIR}" +DJANGO_DIR="django" +DJANGO_PATH="${BASE_DIR}/${DJANGO_DIR}" + +mkdir -p "$BASE_DIR" +python3 -m venv "${VENV_PATH}" +source "${VENV_PATH}/bin/activate" +pip install --upgrade pip +pip install "$PROJECT_REPO_URL" +django-test-admin setup "${DJANGO_PATH}" +python3 "${DJANGO_PATH}/manage.py" collectstatic --noinput + +cat <> "${DJANGO_PATH}/main/settings.py" + +ALLOWED_HOSTS = ['*'] +DEBUG = True +E-O-H diff --git a/container-files/usr/local/sbin/start-httpd.sh b/container-files/usr/local/sbin/start-httpd.sh new file mode 100755 index 0000000..09f67ab --- /dev/null +++ b/container-files/usr/local/sbin/start-httpd.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/sbin/httpd -DFOREGROUND $@