• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Ungelöst] Zusätzliche Apache-Module in Alpine-Docker-Image

gehrke

Administrator
Teammitglied
Moin *

Ich steh' als Immer-Noch-Docker-Neuling grad fürchterlich auf dem Schlauch, Ich brauche einen Apache in einem Docker-Container auf Basis von Alpine. Als Module benötige ich mod_security und mod_jk.

Scheinbar sind beide Module im Alpine-Image nicht enthalten. Wie bekomme ich das ans Fliegen?

Die einzige Möglichkeit, die ich bislang sehe, ist, die Module in einem eigenen Dockerfile selbst zu bauen und hinzuzufügen.

Im Original-Build wird das hier gemacht:
https://github.com/docker-library/httpd/blob/d36dfa56811155947b22eebb636bdfe9a74803a2/2.4/alpine/Dockerfile
Code:
...
	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
	./configure \
		--build="$gnuArch" \
		--prefix="$HTTPD_PREFIX" \
		--enable-mods-shared=reallyall \
		--enable-mpms-shared=all \
# PIE and hardening flags are unnecessary as Alpine enables them automatically (https://alpinelinux.org/about/)
	; \
	make -j "$(nproc)"; \
	make install; \
...
Ist das der Weg?
Wenn ja: Wie klinke ich mich da mit möglichst wenig Aufwand ein, um die gewünschten Module nachträglich in das Image hinzuzufügen, ohne den Original-Build zu beeinträchtigen.
TNX

Hinweis: Bitte keine Antworten wie 'Warum Docker/Alpine/Apache? Nimm doch xxx/yyy/zzz!' Mich interessiert die Umsetzung der Aufgabe so wie sie ist.
 

marce

Guru
Der Standardweg wäre mMn. über ein Dockerfile mit dem Alpine-eigenen Paketmanager die notwendigen Module nachzuinstallieren, siehe z.B. wie in https://stackoverflow.com/a/45181896

Siehe auch https://stackoverflow.com/questions/55187078/how-to-install-apache-module-in-docker-container-at-the-correct-location

Wenn's die Module für Alpine nicht gibt wird's komplizierter... - dann musst Du evtl. wirklich via Dockerfile das Modul aus den Sourcen bauen (oder extern bauen und dann im Dockerfile reinziehen)

(an der Stelle würde ich dann überlegen, anstatt Alpine ein kompletteres OS als BaseImage zu wählen...)
 
OP
gehrke

gehrke

Administrator
Teammitglied
marce schrieb:
Wenn's die Module für Alpine nicht gibt wird's komplizierter... - dann musst Du evtl. wirklich via Dockerfile das Modul aus den Sourcen bauen (oder extern bauen und dann im Dockerfile reinziehen)
Ich habe bei der ersten und zweiten Recherche keine fertigen Apache-Module für Alpine gefunden. Für nginx sieht es scheinbar besser aus, aber das war ja hier explizit nicht die Frage.

marce schrieb:
(an der Stelle würde ich dann überlegen, anstatt Alpine ein kompletteres OS als BaseImage zu wählen...)
Ja, das sehe ich auch so. Ich beerdige diesn Ansatz und setze auf ein anderes Basis-Image. Schade, aber das tue ich mir nicht an.

@marce: Vielen Dank für Deine Einschätzung.
 
Oben