Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support mcr.microsoft.com/windows/servercore #661

Open
Sauci opened this issue Jul 17, 2023 · 3 comments
Open

Support mcr.microsoft.com/windows/servercore #661

Sauci opened this issue Jul 17, 2023 · 3 comments
Assignees
Labels
dependency-upgrade Tracks new image support or EOL question

Comments

@Sauci
Copy link

Sauci commented Jul 17, 2023

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.

@Sauci Sauci added the dependency-upgrade Tracks new image support or EOL label Jul 17, 2023
@samruddhikhandale
Copy link
Member

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 microsoft/vscode-remote-release#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.

@Sauci
Copy link
Author

Sauci commented Jul 21, 2023

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!

@GKMWD
Copy link

GKMWD commented Nov 29, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependency-upgrade Tracks new image support or EOL question
Projects
None yet
Development

No branches or pull requests

3 participants