Sdílet prostřednictvím


Sestavení projektu kontejneru z příkazového řádku

Pokud chcete vytvořit projekt kontejneru s souborem Dockerfile mimo Visual Studio, můžete použít docker buildpříkaz , MSBuild, dotnet buildnebo dotnet publish sestavit z příkazového řádku.

Pokud používáte typ sestavení sady .NET SDK, nemáte soubor Dockerfile, takže ho nemůžete použít docker build. Místo toho použijte MSBuilddotnet build nebo dotnet publish sestavte na příkazovém řádku.

Použití sestavení Dockeru

K sestavení kontejnerizovaného řešení z příkazového řádku můžete obvykle použít příkaz docker build <context> pro každý projekt v řešení. Zadáte kontextový argument sestavení . Kontext sestavení pro soubor Dockerfile je složka na místním počítači, který se používá jako pracovní složka k vygenerování image. Jedná se například o složku, ze které kopírujete soubory při kopírování do kontejneru. Vprojektech .sln ch Vyjádřeno jako relativní cesta, tento argument je obvykle "." pro soubor Dockerfile ve složce projektu a soubor řešení ve své nadřazené složce. Pro projekty rozhraní .NET Framework je výchozím kontextem sestavení složka projektu, nikoli složka řešení.

docker build -f Dockerfile ..

Kontext sestavení v souboru projektu můžete nastavit nastavením DockerfileContext vlastnosti. Příklad:

<PropertyGroup>
   <DockerfileContext>contextfolder</DockerfileContext>
</PropertyGroup>

Relativní cesty v souboru Dockerfile jsou relativní vzhledem k kontextu sestavení, takže pokud změníte kontext, nezapomeňte odpovídajícím způsobem aktualizovat relativní cesty.

Když v sadě Visual Studio 17.11 a novějším přidáte podporu Dockeru do projektu, můžete zadat složku pro kontext sestavení. Pokud chcete změnit kontext sestavení, můžete odstranit soubor Dockerfile (pokud neobsahuje další změny, které chcete zachovat) a znovu spustit podporu Add Docker, tentokrát zadejte nový kontext sestavení. Nový soubor Dockerfile bude mít aktualizované relativní cesty, aby odpovídaly novému kontextu sestavení.

Použití nástroje MSBuild

Poznámka:

Tato část popisuje, jak můžete kontejnery Dockeru přizpůsobit, když zvolíte typ sestavení kontejneru Dockerfile. Pokud používáte typ sestavení sady .NET SDK, možnosti přizpůsobení se liší a informace v tomto článku se nepoužijí. Místo toho si přečtěte téma Kontejnerizace aplikace .NET s publikováním dotnet.

Soubory Dockerfile vytvořené v sadě Visual Studio pro projekty .NET Framework (a pro projekty .NET Core vytvořené pomocí verzí sady Visual Studio před sadou Visual Studio 2017 Update 4) nejsou soubory Dockerfile s více fázemi. Kroky v těchtosouborch Místo toho sada Visual Studio sestaví soubor Dockerfile rozhraní .NET Framework, nejprve zkompiluje projekt pomocí nástroje MSBuild. Když se to podaří, Visual Studio pak sestaví soubor Dockerfile, který jednoduše zkopíruje výstup sestavení z NÁSTROJE MSBuild do výsledné image Dockeru. Protože kroky ke kompilaci kódu nejsou součástí souboru Dockerfile, nemůžete vytvářet soubory Dockerfile rozhraní .NET Framework pomocí docker build příkazového řádku. K sestavení těchto projektů byste měli použít nástroj MSBuild.

Pokud chcete vytvořit image pro jeden projekt kontejneru Dockeru, můžete použít MSBuild s /t:ContainerBuild možností příkazu. Tento příkaz říká nástroji MSBuild, aby místo výchozího cíle sestavil cíl ContainerBuild Build. Příklad:

MSBuild MyProject.csproj /t:ContainerBuild /p:Configuration=Release

Při sestavování řešení z integrovaného vývojového prostředí sady Visual Studio uvidíte výstup podobný výstupu v okně Výstup . Vždy používejte /p:Configuration=Release, protože v případech, kdy Visual Studio používá optimalizaci sestavení s více fázemi, nemusí být výsledky při sestavování konfigurace ladění podle očekávání. Viz Přizpůsobení imagí kontejneru pro ladění.

Pokud používáte projekt Docker Compose, pomocí tohoto příkazu sestavte image:

msbuild /p:SolutionPath=<solution-name>.sln /p:Configuration=Release docker-compose.dcproj

Pokud chcete zobrazit protokoly NÁSTROJE MSBuild, přečtěte si téma Získání protokolů sestavení pomocí nástroje MSBuild.