From scm-commit at wald.intevation.org Wed Aug 21 17:08:18 2024 From: scm-commit at wald.intevation.org (Wald Commits) Date: Wed, 21 Aug 2024 17:08:18 +0200 (CEST) Subject: dive4elements/river@9803: new changeset (1 on 3.2.x) Message-ID: <20240821170818.508385795.scm-commit@wald.intevation.org> New changeset (1 on 3.2.x) in dive4elements/river: pushed by: tomgottfried https://scm.wald.intevation.org/hg/dive4elements/river/rev/a440ebd5c23b changeset: 9803:a440ebd5c23b branch: 3.2.x tag: tip user: Tom Gottfried date: Wed Aug 21 16:54:17 2024 +0200 summary: Avoid using outdated mod_wsgi in Docker setup -- Repository URL: https://scm.wald.intevation.org/hg/dive4elements/river From scm-commit at wald.intevation.org Wed Aug 21 17:08:18 2024 From: scm-commit at wald.intevation.org (Wald Commits) Date: Wed, 21 Aug 2024 17:08:18 +0200 Subject: [PATCH] Avoid using outdated mod_wsgi in Docker setup In-Reply-To: <20240821170818.508385795.scm-commit@wald.intevation.org> References: <20240821170818.508385795.scm-commit@wald.intevation.org> Message-ID: # HG changeset patch # User Tom Gottfried # Date 1724252057 -7200 # Wed Aug 21 16:54:17 2024 +0200 # Branch 3.2.x # Node ID a440ebd5c23b4101d4599252047e345d26acc88d # Parent a9641367812c0965dddfbf294b406f4c272cd625 Avoid using outdated mod_wsgi in Docker setup Run Wiki in standalone mode behind reverse proxy, which is provided by a more up-to-date Apache web server. The wiki container is still based on CentOS 7, because the included SSO integration component cannot be build with more recent libraries. diff -r a9641367812c -r a440ebd5c23b docker/Dockerfile.proxy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/Dockerfile.proxy Wed Aug 21 16:54:17 2024 +0200 @@ -0,0 +1,11 @@ +# Docker file for proxy acting as central access point for D4E River +FROM httpd +MAINTAINER tom at intevation.de + +ADD httpd-proxy.conf $HTTPD_PREFIX/conf/extra/ + +# Activate necessary modules +RUN sed -i -e "/^#LoadModule proxy_module/s/#//;/^#LoadModule proxy_http_module/s/#//;/^#LoadModule proxy_ajp_module/s/#//;/^#LoadModule proxy_html_module/s/#//" $HTTPD_PREFIX/conf/httpd.conf + +# Include proxy configuration +RUN echo "Include conf/extra/httpd-proxy.conf" >> $HTTPD_PREFIX/conf/httpd.conf diff -r a9641367812c -r a440ebd5c23b docker/Dockerfile.wiki --- a/docker/Dockerfile.wiki Wed May 29 10:51:00 2024 +0200 +++ b/docker/Dockerfile.wiki Wed Aug 21 16:54:17 2024 +0200 @@ -7,9 +7,8 @@ RUN yum -q -y install yum-plugin-ovl && rpm --rebuilddb # Install prerequisites -RUN yum -q -y install curl ca-certificates \ - python-setuptools gcc python-devel xmlsec1-nss-devel libtool-ltdl-devel \ - httpd mod_wsgi +RUN yum -q -y install curl ca-certificates tar gzip \ + python-setuptools gcc python-devel xmlsec1-nss-devel libtool-ltdl-devel WORKDIR /opt/xmlsec RUN curl -sL https://pypi.python.org/packages/source/p/pyxmlsec-next/pyxmlsec-next-0.3.1.tar.gz | \ tar -xz @@ -34,10 +33,7 @@ # Volume for Wiki data VOLUME $WIKI/wiki/data -USER root +ENV PYTHONPATH $WIKI -# httpd config -ADD httpd-wiki.conf /etc/httpd/conf.d/ - -EXPOSE 80 -CMD ["/usr/sbin/httpd", "-DFOREGROUND"] +CMD ["/opt/wiki/moin-1.9.9/wiki/server/moin", "server", "standalone", \ + "--hostname="] diff -r a9641367812c -r a440ebd5c23b docker/docker-compose.yml --- a/docker/docker-compose.yml Wed May 29 10:51:00 2024 +0200 +++ b/docker/docker-compose.yml Wed Aug 21 16:54:17 2024 +0200 @@ -48,11 +48,18 @@ context: ./ dockerfile: ./Dockerfile.wiki image: "d4e/river_wiki" - depends_on: - - client volumes: - wiki-data:/opt/wiki/moin-1.9.9/wiki/data - ./wikiconfig_local.py:/opt/wiki/moin-1.9.9/wikiconfig_local.py + proxy: + build: + context: ./ + dockerfile: ./Dockerfile.proxy + image: "d4e/river_proxy" + depends_on: + - client + - mapserv + - wiki ports: - 80 volumes: diff -r a9641367812c -r a440ebd5c23b docker/httpd-proxy.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/httpd-proxy.conf Wed Aug 21 16:54:17 2024 +0200 @@ -0,0 +1,16 @@ +# GWT client +RedirectMatch "^/$" "/d4e-river" +ProxyPass "/d4e-river" "ajp://client:8009/d4e-river" +ProxyPassReverse "/d4e-river" "ajp://client:8009/d4e-river" + +# MapServer +ProxyPass "/cgi-bin" "http://mapserv/cgi-bin" +ProxyPassReverse "/cgi-bin" "http://mapserv/cgi-bin" + +# Wiki +ProxyPass "/wiki" "http://wiki:8080" +ProxyPassReverse "/wiki" "http://wiki:8080" +ProxyHTMLEnable On + + ProxyHTMLURLMap "/" "/wiki/" + diff -r a9641367812c -r a440ebd5c23b docker/httpd-wiki.conf --- a/docker/httpd-wiki.conf Wed May 29 10:51:00 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -ErrorLog /dev/stderr -CustomLog /dev/stdout combined - -# GWT client -RedirectMatch "^/$" "/d4e-river" -ProxyPass "/d4e-river" "ajp://client:8009/d4e-river" -ProxyPassReverse "/d4e-river" "ajp://client:8009/d4e-river" - -# MapServer -ProxyPass "/cgi-bin" "http://mapserv/cgi-bin" -ProxyPassReverse "/cgi-bin" "http://mapserv/cgi-bin" - -# Wiki -WSGIScriptAlias /wiki /opt/wiki/moin-1.9.9/wiki/server/moin.wsgi -WSGIDaemonProcess moin user=wiki group=wiki \ - python-path=/opt/wiki/moin-1.9.9 \ - processes=5 threads=10 maximum-requests=1000 umask=0007 -WSGIProcessGroup moin - - Require all granted - diff -r a9641367812c -r a440ebd5c23b docker/wikiconfig_local.py --- a/docker/wikiconfig_local.py Wed May 29 10:51:00 2024 +0200 +++ b/docker/wikiconfig_local.py Wed Aug 21 16:54:17 2024 +0200 @@ -1,8 +1,7 @@ from wikiconfig import LocalConfig class Config(LocalConfig): - # Keep path prefix in sync with WSGIScriptAlias in httpd config - url_prefix_static = '/wiki/moin_static199' + url_prefix_static = '/moin_static199' # Put your local config here. # See e.g. https://hg.intevation.de/moin/moin-was/file/tip/README