Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Dockerfile de exemplo em Instalar Ferramentas de Build em um contêiner sempre usa a imagem microsoft/dotnet-framework:4.8 baseada na imagem microsoft/windowsservercore e o instalador mais recente das Ferramentas de Build do Visual Studio. Se essa imagem for publicada em um registro do Docker para que outras pessoas efetuem pull, a imagem poderá ser boa para vários cenários. No entanto, na prática, é mais comum ser específico sobre qual imagem base você usa, quais binários você baixa e quais versões de ferramenta você instala.
O seguinte exemplo de Dockerfile usa um tag de versão específica da imagem microsoft/dotnet-framework. Usar uma marca específica para uma imagem base é comum e facilita lembrar que criar ou recriar imagens sempre tem a mesma base.
Nota
Não é possível instalar o Visual Studio no microsoft/windowsservercore:10.0.14393.1593 ou em qualquer imagem com base nele, que tem problemas conhecidos ao iniciar o instalador em um contêiner. Para obter mais informações, consulte Problemas conhecidos para contêineres.
O exemplo a seguir baixa a versão mais recente do Build Tools. Caso deseje usar uma versão anterior das Ferramentas de Build que possa ser instalada em um contêiner posteriormente, primeiro você precisará criar e manter um layout.
Instalar script
Para coletar logs quando ocorrer um erro de instalação, crie um script em lote chamado "Install.cmd" no diretório de trabalho que inclui o seguinte conteúdo:
@if not defined _echo echo off
setlocal enabledelayedexpansion
call %*
if "%ERRORLEVEL%"=="3010" (
exit /b 0
) else (
if not "%ERRORLEVEL%"=="0" (
set ERR=%ERRORLEVEL%
call C:\TEMP\collect.exe -zip:C:\vslogs.zip
exit /b !ERR!
)
)
exit /b 0
Dockerfile
No diretório de trabalho, crie o "Dockerfile" com o seguinte conteúdo:
# escape=`
# Use the latest Windows Server Core 2019 image.
ARG FROM_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2019
FROM ${FROM_IMAGE}
# Restore the default Windows shell for correct batch processing.
SHELL ["cmd", "/S", "/C"]
# Copy our Install script.
COPY Install.cmd C:\TEMP\
# Download collect.exe in case of an install failure.
ADD https://aka.ms/vscollect.exe C:\TEMP\collect.exe
# Use the latest release channel. For more control, specify the location of an internal layout.
ARG CHANNEL_URL=https://aka.ms/vs/17/release/channel
ADD ${CHANNEL_URL} C:\TEMP\VisualStudio.chman
RUN `
# Download the Build Tools bootstrapper.
curl -SL --output vs_buildtools.exe https://aka.ms/vs/17/release/vs_buildtools.exe `
`
# Install Build Tools with the Microsoft.VisualStudio.Workload.AzureBuildTools workload, excluding workloads and components with known issues.
&& (call C:\TEMP\Install.cmd vs_buildtools.exe --quiet --wait --norestart --nocache install `
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" `
--channelUri C:\TEMP\VisualStudio.chman `
--installChannelUri C:\TEMP\VisualStudio.chman `
--add Microsoft.VisualStudio.Workload.AzureBuildTools `
--remove Microsoft.VisualStudio.Component.Windows10SDK.10240 `
--remove Microsoft.VisualStudio.Component.Windows10SDK.10586 `
--remove Microsoft.VisualStudio.Component.Windows10SDK.14393 `
--remove Microsoft.VisualStudio.Component.Windows81SDK) `
`
# Cleanup
&& del /q vs_buildtools.exe
# Define the entry point for the Docker container.
# This entry point starts the developer command prompt and launches the PowerShell shell.
ENTRYPOINT ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
Execute o seguinte comando para criar a imagem no diretório de trabalho atual:
docker build -t buildtools2022:17.0 -t buildtools2022:latest -m 2GB .
Você pode opcionalmente passar os argumentos FROM_IMAGE ou CHANNEL_URL, ou ambos, usando a opção de linha de comando --build-arg para especificar uma imagem base diferente ou a localização de um layout interno para manter uma imagem fixa.
Dica
Para obter uma lista de cargas de trabalho e componentes, consulte o diretório de componentes do Visual Studio Build Tools.
Diagnosticando falhas de instalação
Este exemplo baixa ferramentas específicas e valida que os hashes correspondem. Isso também baixa o utilitário de coleta de logs mais recente do Visual Studio e do .NET, para que, se ocorrer uma falha de instalação, você possa copiar os logs para a máquina host e analisar a falha.
> docker build -t buildtools2022:17.0 -t buildtools2022:latest -m 2GB .
Sending build context to Docker daemon
...
Step 8/10 : RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache ...
---> Running in 4b62b4ce3a3c
The command 'cmd /S /C C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe ...' returned a non-zero code: 1603
> docker cp 4b62b4ce3a3c:C:\vslogs.zip "%TEMP%\vslogs.zip"
Depois que a última linha terminar de ser executada, abra "%TEMP%\vslogs.zip" em seu computador ou envie um problema no site Developer Community.
Suporte ou solução de problemas
Às vezes, as coisas podem dar errado. Se a instalação do Visual Studio falhar, consulte Solucionar problemas de instalação e atualização do Visual Studio para obter diretrizes passo a passo.
Aqui estão mais algumas opções de suporte:
- Use a opção de chat de suporte (em inglês somente) para problemas relacionados à instalação.
- Relate problemas do produto a nós usando a ferramenta Relatar um Problema, que aparece tanto no Instalador do Visual Studio quanto no IDE do Visual Studio. Se você for um Administrador de TI e não tiver o Visual Studio instalado, poderá enviar comentários do Administrador de TI.
- Sugira um recurso, acompanhe os problemas do produto e encontre respostas no da Comunidade de Desenvolvedores do Visual Studio.