2017-11-17 1 views
0

Ich habe eine asp.net Core 2.0-Anwendung, deren Docker Bild läuft lokal in Ordnung, aber wenn das gleiche Bild auf einen AKS Cluster bereitgestellt wird, müssen die Hülsen einen Status CrashLoopBackOff und das Protokoll zeigt pod:aspnetcore: 2.0-basiertes Image wird nicht auf AKS-Knoten ausgeführt?

Wollten Sie dotnet SDK Befehle ausführen? Bitte installieren Sie das dotnet SDK von: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409.

Und da Sie nicht zu AKS-Cluster ssh können, ist es ziemlich schwierig, dies herauszufinden?

Dockerfile:

FROM microsoft/aspnetcore:2.0 
WORKDIR /app 
COPY . . 
EXPOSE 80 
ENTRYPOINT ["dotnet", "myapi.dll"] 

Antwort

0

Es stellte sich heraus, dass unser Build-System die App-Code in den Behälter nicht anzog, wie wir dachten. Da der Behälter nicht runnable war, wusste ich nicht, wie ihr Inhalt untersuchen, bis ich diesen Befehl gefunden, die lebensrettend für diese Art von Situationen ist:

docker run --rm -it --entrypoint=/bin/bash [image_id]

... das an dieser Stelle, Sie können den Inhalt des Containers frei überprüfen/verifizieren.

0

Ich bin gerade in das gleiche Problem gerannt und es ist weil ich ein Schlüsselstück zum Puzzle vermisst habe.

docker-compose -f docker-compose.ci.build.yml run ci-build

VS2017 Docker Werkzeuge wird diese docker-compose.ci.build.yml Datei erstellen. Nachdem dieser Befehl ausgeführt wurde, wird der Ordner publish ausgefüllt, und docker build -t <tag> erstellt ein gefülltes Abbild (ohne einen leeren Ordner /app).

Verwandte Themen