Anwendung aus dem Docker heraus starten
Lowterm
- programmiertechnik
Hallo,
ich versuche grade, ein Docker-Image zu erzeugen. Die Dockerfile sieht etwa wie folgt aus:
FROM golang:alpine
RUN mkdir /app
COPY . /app
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
Das Image wird im Docker auch erzeugt
docker build -t go-app-img .
docker run -d -p 3333:3000 --name go-app-container go-app-img
und die Datei, in der eine einfache Ausgabe steht, wird im Browser auch gerendert und angezeigt. Das funktioniert aber nicht, wenn ich in meinem Programm ein Routing habe und ich eine andere (HTML)Datei aufrufen möchte.
Ist dieses Vorhaben aus dem Docker heraus überhaupt möglich? Kennt sich jemand mit diesem Vorgang aus?
Danke im Voraus
Das funktioniert aber nicht, wenn ich in meinem Programm ein Routing habe und ich eine andere (HTML)Datei aufrufen möchte.
Genau das was „nicht funktioniert“ zeigst Du nicht…
Ganz wichtig: Wie äußert sich dieses „funktioniert aber nicht“?
Das nicht gezeigte liefert womöglich debug-Ausgaben. Du nimmst Dir selbst die Chance, diese zu sehen.
docker run -a=stdout -a=stderr -p 3333:3000 --name go-app-container go-app-img
wäre also der erste Kandidat bei der Fehlersuche.
Im Container selber gibt es keine Fehlermeldung. Das Routing in meinem Programm
func viewHandler(w http.ResponseWriter, r *http.Request) {
title := r.URL.Path[len("/view/"):]
p, _ := loadPage(title)
fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body)
}
http.HandleFunc("/view/", viewHandler)
läuft anscheinend nicht. Das einzige was ich im Browser erhalte, ist:
Diese Seite funktioniert nicht
localhost hat keine Daten gesendet.
ERR_EMPTY_RESPONSE
Im Container selber gibt es keine Fehlermeldung. Das Routing in meinem Programm
func viewHandler(w http.ResponseWriter, r *http.Request) { title := r.URL.Path[len("/view/"):] p, _ := loadPage(title) fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body) } http.HandleFunc("/view/", viewHandler)
läuft anscheinend nicht. Das einzige was ich im Browser erhalte, ist:
Diese Seite funktioniert nicht localhost hat keine Daten gesendet. ERR_EMPTY_RESPONSE
Hm. Hast Du sowas?
Genau. Ich arbeite grade mit einer Testdatei. So funktioniert alles einwandfrei. Ich versuche grade, ein paar Erfahrungen bezüglich des Containers zu sammeln und wollte aus meinem Testprogramm ein Image erzeugen und dieses zum laufen zu bringen.
Hm. Hast Du sowas?
Genau.
Schlechte Nachricht: Ich bin da mit meinem Latein am Ende. Dennoch haben wir dank meiner Glaskugel einen Fortschritt: Du weißt jetzt, was Du auch woanders zeigen musst.