Uso Docker per Windows versione 1.13.0-rc5-beta35 (9606)
Windows 10 Pro
Codice di Visual Studio
Ho creato un progetto ASP.NET Core con Docker usando il generatore di yeoman:
yo aspnet
yo docker
Ho riscontrato problemi durante il tentativo di collegare l'API da un contenitore Docker a un'istanza di SQL Server che avevo eseguito localmente.
Per risolvere questo problema ho creato un'istanza di SQL Server in esecuzione nel proprio contenitore (utilizzando l'immagine microsoft/mssql-server-linux
).
Entrambi i contenitori sono in esecuzione e sono collegati alla stessa rete bridge definita dall'utente.
Se apro un terminale bash nel mio contenitore principale asp.net ed eseguo il comando:
dotnet ef migrations add InitialMigration
Speravo che il mio modello Code First sarebbe stato creato nell'istanza di SQL Server in esecuzione sulla rete poiché questo è ciò che accade quando eseguo l'installazione localmente (nessun contenitore). Invece ho il seguente:
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
Sono confuso perché dovevo installare dotnet. Ho usato il microsoft/aspnetcore
come livello di base nel mio Dockerfile, e posso vedere che questo a sua volta usa microsoft/dotnet:1.0.3-runtime
come livello di base ...
Qualcuno può spiegare perché ottengo questo messaggio e se mi sto avvicinando a questa soluzione nel modo corretto (web API e SQL Server in contenitori separati)? Se ho bisogno di installare il sdk dotnet, sarei grato se qualcuno potesse mostrarmi come farlo come parte di un Dockerfile
Grazie per qualsiasi aiuto
Contenuto del file Docker di asp.net core
FROM microsoft/aspnetcore:1.1.0
WORKDIR /app
COPY bin/Debug/netcoreapp1.1/publish /app
ENV ASPNETCORE_URLS http://*:3000
EXPOSE 3000
ENTRYPOINT /bin/bash -c "dotnet MyAppName.dll"
microsoft/aspnetcore:1.1.0
stai usando è basato su microsoft/dotnet:1.1.0-runtime
. Contiene solo runtime .NET Core, non SDK. Per eseguire comandi come run
, ef
e altri strumenti - hai bisogno di una delle immagini sdk
su sdk