Guide to get a development environment on Windows 10
Published: 2021-11-30 08:37:59

---
title: Guide to get a development environment on Windows 10
published: true
date: 2019-11-27 00:00:00 UTC
tags: 
canonical_url: https://www.dylan-ballandras.fr/blog/getting-started-guide-windows-10-developer-environment/
---

> FYI
> It's a repost from a blogpost of 2019. It might still be useful for some. I don't really know as I'm working on Pop_OS! now

While giving the opportunity to work remotely for a client, I was left with a computer working with… Windows 10.Yeay… Ubuntu, you miss me. 😭

Here comes the story of a little human developer, trying to leverage Docker on Windows and Azure ActiveDirectory as an accountmanager.

The goal of this post is to create an environment as close as possible to what we are used to on Linux distro.

## [<svg viewbox="0 0 16 16" width="16" height="16" fill="currentcolor" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#learn-to-windows-to-understand-unix-commands)Learn to Windows to “understand” Unix commands

First, we need to have a safe and warm CLI environment to work with.How do you create directories without `mkdir`, add aliases as `ll` for `ls -lah`, symbolic links or to install softwares…

I can recommend you to head to [Chocolatey](https://chocolatey.org/install). It is a package manager for Windows.You can find all packages available through the CLI command `choco search a-package-name` or thanks to [their website](https://chocolatey.org/packages).

Yes, first step accomplish! No more install from fancy, non working UI. And yes, you can do things like `choco install nodejs`. Or even…Wait for it…

## [<svg viewbox="0 0 16 16" width="16" height="16" fill="currentcolor" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#install-docker-on-windows)Install Docker on Windows

Thanks to the previous step, you can install one of the precious tools that can saves you from installing NodeJS, PHP or anything on your host.As before, use your CLI tool, to write:

```

choco install docker-desktop

docker -v

docker-compose -v

docker run hello-world

```

✅ Thanks to those commands, you might have a working Docker setup. You might use it to test PHP or NodeJS projects. I often simply use the following command when I have to preview locally my blog posts.

```

docker run --rm -it -p 8000:8000 --workdir /data -v path-to-my-project:/data node:10 yarn develop --host=0.0.0.0

```

* * *

## [<svg viewbox="0 0 16 16" width="16" height="16" fill="currentcolor" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#get-a-fancy-console-emulator)Get a fancy Console Emulator

My go-to terminal for Windows is called [Cmder](https://cmder.net/). It comes with a set of Unix commands and Git-for-Windows integrated.That’s because it’s a package containing Clink and ConEmu which could use Cygwin (to get `that Linux feeling - on Windows`).Or, since June 2019 you can find a [newer terminal for Windows](https://github.com/microsoft/terminal) with Cygwin.

Heads to an already available console/terminal and type:

`choco install microsoft-windows-terminal` or `choco install Cmder` depending on the one you chose.

## [<svg viewbox="0 0 16 16" width="16" height="16" fill="currentcolor" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#how-to-share-your-c-drive-on-windows-for-azure-ad-users)How to share your C drive on Windows for Azure AD users

First, try to follow [this article](https://tomssl.com/2018/01/11/sharing-your-c-drive-with-docker-for-windows-when-using-azure-active-directory-azuread-aad/).If it doesn’t work, in File explorer go to the folder you’d like to map as a volume, and add the user and give them full control.With this configuration, I was able to get access to files in docker containers.

One more thing to consider is [an update to WSL2 with the newest Preview of Docker for Windows](https://www.hanselman.com/blog/DockerDesktopForWSL2IntegratesWindows10AndLinuxEvenCloser.aspx).I didn’t try it yet but I have bad performances for Docker compared to my Ubuntu or MacOS. But that was expected… 🤷‍♂️

## [<svg viewbox="0 0 16 16" width="16" height="16" fill="currentcolor" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>](#talking-about-windows-sub-system-for-linux-wsl)Talking about Windows Sub-system for Linux (WSL)

I tried to work with it but it doesn’t feel right. It feels even slower than using Docker directly with CMD or Powershell.I’m looking forward for WSL 2 in early 2020. Hope this will help all of use, forced/enjoying to work with Windows professionally.

Today, if you need to install Debian or Ubuntu under WSL, follow [this great guide from Microsoft](https://docs.microsoft.com/fr-fr/windows/wsl/install-win10).

Update from 02/20/2020:  
I now use WSL with [asdf-vm](https://asdf-vm.com/) for dependencies to PHP or NodeJS. It’s ok, smooth to switch between versions and using the Windows Terminal is better for it.I still use docker and docker-compose for tools like RabbitMQ or Redis.