J'ai utilisé this tutorial pour créer mon premier projet webapi docker. J'utilise Windows 7 (boîte à outils docker)La construction du docker aspnetcore dotnet échoue avec un code d'erreur 145
Ce que j'ai couru:
dotnet new webapi
C'est le Dockerfile:
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]
Voici comment j'ai créé l'image:
docker build -t mydemos:aspnetcorehelloworld .
Et voilà comment je avez créé et couru le conteneur:
docker run -d -p 8080:5000 -t mydemos:aspnetcorehelloworld
Mon service s'est correctement exécuté en tant que conteneur docker.
Ensuite, j'ai essayé de changer le Dockerfile de travailler sur une image de base aspnetcore:
FROM microsoft/dotnet:latest
a été changé pour FROM microsoft/aspnetcore:1.0.1
Le nouveau Dockerfile ressemble à:
FROM microsoft/aspnetcore:1.0.1
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]
Maintenant, je J'ai essayé de construire la nouvelle image en utilisant
docker build -t mydemos:aspnetcorehelloworld1 .
Et j'obtiens une erreur.
Ceci est le journal de construction:
Sending build context to Docker daemon 636.9 kB
Step 1/8 : FROM microsoft/aspnetcore:1.0.1
---> 2c7bbc508bb2
Step 2/8 : COPY . /app
---> Using cache
---> 1d5b9bd908b3
Step 3/8 : WORKDIR /app
---> Using cache
---> c1d5d091d111
Step 4/8 : RUN dotnet restore
---> Running in 8399e21caeb2
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
The command 'dotnet restore' returned a non-zero code: 145
Je suis entré dans l'url, des trucs et réinstallées je reçois encore une erreur.
J'ai essayé d'utiliser les commandes dotnet cli dans la même session de ligne de commande et je réussis (dotnet restore
fonctionne).
J'ai essayé de rechercher cette erreur, mais je n'ai pas vraiment trouvé de solution.
Qu'est-ce qui me manque ici? Je reçois cette erreur 145 à plusieurs reprises et tests.
Merci pour la réponse, mais laissez-moi comprendre quelque chose. J'essaye de construire une image de docker basée sur une autre image de docker qui contient l'exécution dont j'ai besoin. Je comprends que le processus de construction a besoin du SDK, mais pourquoi ai-je besoin d'une image de base qui contient le SDK? –
@AmirPopovich J'ai ajouté plus de détails dans la réponse, laissez-moi savoir si vous avez d'autres questions. – Polynomial
Bonne explication !!! Merci beaucoup. Dernières questions: Y a-t-il une image plus petite qui ne contient que le runtime et le SDK? Est-il possible que je puisse ajouter 2 commandes FROM dans mon fichier docker? –