Httpd.conf Datei bearbeiten bei Docker Image?


24.11.2023, 12:36

Nutze einen Apache Image

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Dafür gibt es ausreichend viele Anleitungen im Internet, bspw.

Beliebige Suchmaschine ist dein Freund!

Kurzform: Du setzt ein storage an den Container dran, der die Konfig-Dateien enthält und sie dort auch dauerhaft speichern kann.

Allgemein kann man Befehle bzw. eine Shell innerhalb eines Containers starten über "exec". Siehe bspw.

https://www.digitalocean.com/community/tutorials/how-to-use-docker-exec-to-run-commands-in-a-docker-container

Wichtig: Hast du kein Storage an einem Container dran, gehen alle Einstellungen verloren, sobald der Container beendet wird.


FrageCoding 
Beitragsersteller
 26.11.2023, 13:32

Vielen Dank für deine Antwort, diese Lösungen habe ich ausprobiert es geht aber immer noch nicht. Ich habe diese Image webdevops/php-apache . In der Dokumentation steht das es unter

/opt/docker/etc/supervisor.d/httpd.conf

eine httpd.conf datei gibt, bei mir existiert diese nicht, und wenn ich diese anlege wird diese aber auch nicht berücksichtigt.

julihan41  26.11.2023, 13:37
@FrageCoding

Hast du den Ordner /opt/docker/etc/supervisor.d/ an den Container weitergereicht?

FrageCoding 
Beitragsersteller
 26.11.2023, 13:44
@julihan41

Ich denke schon, ich nutze das Image mit Truenas Scale, da kann man ja einfach pullen und der kümmert sich ja quasi um alles.

julihan41  26.11.2023, 13:49
@FrageCoding

Das heißt aber nicht unbedingt, dass dieser Ordner für den Container erreichbar ist. Machst du das über Docker-Compose?

FrageCoding 
Beitragsersteller
 26.11.2023, 13:53
@julihan41

Ich bin auf dem gebiete Docker noch sehr frisch. Wenn du mit Docker-Compose meinst ob noch mehr laufen, ja. Aber nur der eine mit diesem Image und auch kein vHost

julihan41  26.11.2023, 13:56
@FrageCoding

Nein, Docker-Compose ist eine Anwendung, in der du definierst, wie deine Container auszusehen und zu konfigurieren sind. Siehe

https://docs.docker.com/compose/

Du musst dem Container explizit mitteilen, woher er seine Konfigurations-Daten erhält. Ansonsten ist das Ding nämlich in seinem Container unveränderbar und kann nichts auf dem System sehen ("containerisiert").

FrageCoding 
Beitragsersteller
 26.11.2023, 14:02
@julihan41

Wenn ich einen Container gepullt habe und ich in diesem Container eine Datei hinzufüge etc. sieht der Container die trotzdem nicht?

julihan41  26.11.2023, 14:03
@FrageCoding

Doch, dann sollte er sie sehen. Sorry, das wurde aus deinen Antworten für mich nicht ganz klar.

Wie fügst du die Datei denn hinzu?

FrageCoding 
Beitragsersteller
 26.11.2023, 14:07
@julihan41
docker cp /mnt/localeDatein/httpd.conf 2666d27eba6e:/opt/docker/etc/supervisor.d/httpd.conf

Die ID ändert sich natürlich immer wieder, ich reboote das Image natürlich nach änderungen auch. Die Datei liegt jetzt auch im Ordner. Ich hab in die Datei zum testen einfach mal


<Location "/test">
    Redirect permanent "/test" "/test.html"
</Location>  

geschrieben. Leider wenn ich die IP vom Webserver aufrufe und dann /test kommt nur 404 Not Found. Die Datei existiert natürlich ;D

julihan41  26.11.2023, 14:10
@FrageCoding
ich reboote das Image natürlich nach änderungen auch.

Und damit sind alle Daten weg, außer du hast dem Container ein permanentes Storage gegeben :D

Liegen /test und /test.html auch im Container?

FrageCoding 
Beitragsersteller
 26.11.2023, 14:11
@julihan41

die Web dateien werden in den Container gemounted.
Ahh das würde natürlich Sinn machen, ich schau mal gleich nach, für die Lernkurve ;D. Also am besten in das /opt/docker/etc/supervisor.d/ auch die httpd.conf mounten?

julihan41  26.11.2023, 14:13
@FrageCoding

Vermutlich? Ich habe sowas immer über ein Docker-Compose-File gemacht. Da war das recht einfach machbar...

Noch mal: Container vergessen bei Neustart oder Beendigung alles, was nicht explizit als permanentes Storage mitgegeben wurde.

FrageCoding 
Beitragsersteller
 26.11.2023, 14:14
@julihan41

Kann man nachträglich per Command ein permanentes Storage "Attribut" vergeben? Du hast mir riesig weitergeholfen!!! Ohne dich wäre ich warscheinlich nie darauf gekommen das der Container alles vergisst :D

julihan41  26.11.2023, 14:16
@FrageCoding

Sicherlich kann man das. Aber da kann ich dir gerade nicht weiter helfen. Wie schon gesagt, habe ich das über Docker-Compose erledigt.