Support mcr.microsoft.com/windows/servercore
Hello,
After a bunch of researches, I've not been able to find a devcontainer image based on mcr.microsoft.com/windows/servercore anywhere. My idea was to setup an image based on this image (I need this one as our dev environment uses several tools running on Windows only) and run it in VSCode, but sadly it seems like it is not supported yet. Did I miss documentation on how to achieve that somewhere? Looking at this link, none of those images run on Docker for Windows. Thanks in advance for your feedback.
Hi 👋
Looking at this link, none of those images run on Docker for Windows.
Unfortunately, all the images hosted by this repo (& pointed by the link) are Linux based which works with VS Code and the Dev containers extension. Hence, they support Linux based containers.
I've not been able to find a devcontainer image based on mcr.microsoft.com/windows/servercore anywhere.
@Sauci Looks like you are expecting a Windows container to work with your setup? We have https://github.com/microsoft/vscode-remote-release/issues/445 open for adding support for Windows Containers.
Feel free to correct me if I have misunderstood your question.
// cc @bamurtaugh for any other thoughts.
Hi @samruddhikhandale, thank you for your detailed answer. You got it right, I'm trying to run a Windows container as devcontainer. The linked issue you sent is exactly the problem we have, I hope it will be fixed at some point, as it looks like many people are expecting this feature... I think this comment makes sense, so I will keep fingers crossed!
Atualmente, a arquitetura dos contêineres Dev Container no Visual Studio Code é projetada principalmente para sistemas operacionais baseados em Linux. Por essa razão, pode ser desafiador encontrar uma imagem devcontainer baseada no mcr.microsoft.com/windows/servercore para uso no VSCode.
Se você precisa configurar um ambiente de desenvolvimento com ferramentas específicas que são executadas apenas no Windows, você pode considerar a seguinte abordagem:
Multi-Stage Build com Docker para Windows: Utilize uma imagem base do Windows para construir e configurar suas ferramentas específicas. Em uma etapa posterior do Dockerfile, copie apenas os artefatos necessários para uma imagem baseada em Linux que seja suportada no Dev Container. Este é um exemplo simplificado de como um Dockerfile pode se parecer: Dockerfile Copy code
Stage 1: Construir com base no Windows
FROM mcr.microsoft.com/windows/servercore AS builder
Configuração das ferramentas específicas no ambiente do Windows
Stage 2: Copiar apenas o necessário para uma imagem Linux
FROM mcr.microsoft.com/devcontainers/base:linux COPY --from=builder /path/to/artifacts /desired/location
Configurações adicionais para o ambiente Linux
Isso permite que você aproveite as ferramentas específicas do Windows durante a construção, mas ainda tenha uma imagem final que possa ser usada como base no Dev Container.
Custom Dev Container Script: Crie um script personalizado para configurar o ambiente no início do seu Dev Container. O script pode ser executado quando o contêiner do Dev Container for iniciado. Dockerfile Copy code
Use uma imagem Linux como base
FROM mcr.microsoft.com/devcontainers/base:linux
Copie o script personalizado para o contêiner
COPY setup-script.sh /usr/local/bin/
Defina o script como o comando de inicialização padrão
ENTRYPOINT ["/usr/local/bin/setup-script.sh"] Entrar em Contato com a Comunidade do Visual Studio Code: Se a solução acima não atender completamente às suas necessidades, considere entrar em contato com a comunidade do Visual Studio Code para obter suporte ou verificar se há planos futuros de suporte para contêineres Dev Container baseados no Windows. Lembre-se de que as opções acima são sugestões gerais e podem precisar ser adaptadas às suas necessidades específicas. Certifique-se de verificar a documentação mais recente do Visual Studio Code e do Dev Containers para obter as informações mais atualizadas.