daytonaio / daytona

The Open Source Dev Environment Manager.
https://daytona.io
Apache License 2.0
10.39k stars 838 forks source link

Windows Daytona workspace #1339

Open Tpuljak opened 1 day ago

Tpuljak commented 1 day ago

Describe the solution you'd like We should explore the possibility of running Windows images with Daytona to allow users to create workspaces in a Windows environment. This feature might enable additional native development workflows that can not be ran on Linux. We should look into https://github.com/dockur/windows as possible images to use.

Additional context We should first discuss the approach here and outline the necessary changes, if any, needed to make this happen.

quest-bot[bot] commented 1 day ago

New Quest! image New Quest!

A new Quest has been launched in @daytonaio’s repo. Merge a PR that solves this issue to loot the Quest and earn your reward.


Loot of 500 USD has been stashed in this issue to reward the solver!

🗡 Comment @quest-bot embark to check-in for this Quest and start solving the issue. Other solvers will be notified!

⚔️ When you submit a PR, comment @quest-bot loot #1339 to link your PR to this Quest.

Questions? Check out the docs.


👉 If no one is assigned to the issue, you are welcome to embark on the quest and tackle it without confirmation from us. In the event that multiple PRs are made from different people, we will generally accept those with the cleanest code.

divanshu-go commented 1 day ago

@Tpuljak I want to know that how the image that we are currently using Is configured. Is there a seperate repository or docker hub link ?

Tpuljak commented 1 day ago

@divanshu-go the current default image that daytona ships with (daytonaio/workspace-project) is built with the devcontainer definition found here https://github.com/daytonaio/daytona/tree/main/hack/project_image.

divanshu-go commented 1 day ago

what the use of [builder_image/.devcontainer](https://github.com/daytonaio/daytona/tree/main/hack/ then

divanshu-go commented 1 day ago

@divanshu-go the current default image that daytona ships with (daytonaio/workspace-project) is built with the devcontainer definition found here https://github.com/daytonaio/daytona/tree/main/hack/project_image.

@Tpuljak thanks for the information , are there any other hacks or workarounds to configure while testing it ?

Tpuljak commented 1 day ago

what the use of [builder_image/.devcontainer](https://github.com/daytonaio/daytona/tree/main/hack/ then

You can ignore that for now.

are there any other hacks or workarounds to configure while testing it ?

No need for hacks. You can configure the default by running daytona server configure or do it on a per-workspace basis with --custom-image and --custom-image-user (or in the advanced config view) when running daytona create.

divanshu-go commented 1 day ago

@Tpuljak what if we consider using https://mcr.microsoft.com/en-us/catalog?search=window&type=partial rather than https://github.com/dockur/windows

Tpuljak commented 1 day ago

@divanshu-go you're free to suggest any approach that will accomplish the goal of creating a windows-based workspace.

divanshu-go commented 12 hours ago

@Tpuljak

we have two options here

1. using one of the official images https://hub.docker.com/r/microsoft/windows

Cons:

Pros:

Cons:

Pros:

vishwamartur commented 11 hours ago

@quest-bot embark

quest-bot[bot] commented 11 hours ago

@vishwamartur has embarked on their Quest. 🗡

This is not an assignment to the issue. Please check the repo’s contribution guidelines before submitting a PR.

Questions? Check out the docs.

divanshu-go commented 11 hours ago

@quest-bot embark

quest-bot[bot] commented 11 hours ago

@divanshu-go has embarked on their Quest. 🗡

This is not an assignment to the issue. Please check the repo’s contribution guidelines before submitting a PR.

Questions? Check out the docs.

Tpuljak commented 11 hours ago
  1. using one of the official images https://hub.docker.com/r/microsoft/windows

@divanshu-go, I don't believe that this is a viable options. From what I can see, windows containers aren't meant for this use case but rather only for deployment on Windows Servers.

  1. using https://github.com/dockur/windows

Even though the support is currently lacking for MacOS, I suggest you try this out. You can create an example repository with a devcontainer configuration that has this (https://github.com/dockur/windows?tab=readme-ov-file#usage-) docker compose set. Then try to run daytona create THAT_REPO and let us know how it goes. Looking at the compose, Daytona might not even have to do anything special here if it can be fully configured with the devcontainer standard.

divanshu-go commented 11 hours ago

@Tpuljak If we go with option 1 of using microsoft images and if we want to test them out on linux or macs , we use setups mentioned here accordingly , https://github.com/StefanScherer/windows-docker-machine?tab=readme-ov-file

using this will enable support on all three OS - linux , mac , windows (might work on home edition if we use WSL)

Tpuljak commented 11 hours ago

@Tpuljak If we go with option 1 of using microsoft images and if we want to test them out on linux or macs , we use setups mentioned here accordingly , https://github.com/StefanScherer/windows-docker-machine?tab=readme-ov-file

using this will enable support on all three OS - linux , mac , windows (might work on home edition if we use WSL)

@divanshu-go okay. Please try out both setups yourself and let use know how it goes and what might be the better option in the context of Daytona.

divanshu-go commented 6 hours ago

@Tpuljak image which image should we use. progress till now , https://github.com/divanshu-go/windows-dev-container.git

Tpuljak commented 6 hours ago

which image should we use.

@divanshu-go use anything you want. Ideally, all of them will work normally.

divanshu-go commented 6 hours ago

I meant to say that should we show a option to the user regarding this or whatever we choose ?

Tpuljak commented 6 hours ago

I meant to say that should we show a option to the user regarding this or whatever we choose ?

If this can be solved through a devcontainer, there is no need to implement anything in Daytona.

divanshu-go commented 6 hours ago

image

PS: it worked in the vscode devcontainers

divanshu-go commented 5 hours ago

image

naaa760 commented 38 minutes ago

@quest-bot embark

quest-bot[bot] commented 38 minutes ago

@naaa760 has embarked on their Quest. 🗡

This is not an assignment to the issue. Please check the repo’s contribution guidelines before submitting a PR.

Questions? Check out the docs.