Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker:apache_httpd_mit_docker [2026/02/22 16:23] ingo_wichmann [manuell] |
admin_grundlagen:docker:apache_httpd_mit_docker [2026/02/22 16:39] (aktuell) ingo_wichmann [mit Dockerfile] |
||
|---|---|---|---|
| Zeile 47: | Zeile 47: | ||
| docker rm httpd_8001 | docker rm httpd_8001 | ||
| ==== mit Dockerfile ==== | ==== mit Dockerfile ==== | ||
| - | TODO: | + | |
| + | Problem: im Image ''httpd:2.4'' steht ''EXPOSE 80/tcp''. Um das zu ändern, muss man ein neues Image erzeugen und alle relevanten Instruktionen neu setzen. (Oder man ignoriert es, ''EXPOSE'' dient nur der Dokumentation.) | ||
| + | |||
| + | docker image history --no-trunc httpd:2.4 | ||
| + | -> alle Anweisungen rauskopieren, die im neuen Image enthalten sein sollen | ||
| <code Dockerfile Dockerfile> | <code Dockerfile Dockerfile> | ||
| - | FROM httpd:2.4 | + | FROM httpd:2.4 AS build |
| - | CMD sed -i 's/^Listen 80/Listen 8001/' /usr/local/apache2/conf/httpd.conf | + | RUN sed -i.bak 's/^Listen 80/Listen 8001/' /usr/local/apache2/conf/httpd.conf |
| - | </code> | + | |
| + | FROM scratch | ||
| + | COPY --from=build / / | ||
| + | ENV HTTPD_PREFIX=/usr/local/apache2 | ||
| + | ENV PATH=/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | ||
| + | ENV HTTPD_VERSION=2.4.66 | ||
| + | ENV HTTPD_SHA256=94d7ff2b42acbb828e870ba29e4cbad48e558a79c623ad3596e4116efcfea25a | ||
| + | ENV HTTPD_PATCHES= | ||
| + | CMD ["httpd-foreground"] | ||
| + | EXPOSE 8001/tcp | ||
| + | </code> | ||
| + | docker build -t='ingo/apache:0.0.1' | ||
| + | docker container run -d -P ingo/apache:0.0.1 | ||
| + | docker container ps | ||
| + | -> ''->8001/tcp'' | ||