-
Notifications
You must be signed in to change notification settings - Fork 167
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
Windows: evaluate CI-ing on Windows Containers and WSL #991
Comments
@StefanScherer do you have
|
@refack I don't have an Ansible playbook, but can provide some steps how to install Docker. With the steps in the docs ( https://store.docker.com/editions/enterprise/docker-ee-server-windows ) there are two relevant steps Install-Module DockerProvider -Force
Install-Package Docker -ProviderName DockerProvider -Force This PowerShell module installs the Containers feature, downloads Docker binaries and installs the Windows service. A reboot is required after installing the Containers feature. After the reboot the docker.exe CLI is available in PATH (C:\Program Files\docker). All Docker relevant data can be found in C:\ProgramData\docker. There is also a PowerShell module by Microsoft (DockerMsftProvider and DockerMsftProviderInsider), but the most recent versions are found with the module by Docker, Inc. (DockerProvider). In my Packer templates there are similar steps in scripts/docker/2016/ if this two-liner doesn't work directly. The Hyper-V feature is not mandatory, but helps running older Docker images with older kernel versions. For Windows Server 2016 LTS channel there are two Windows base images:
For the Windows Server 1709 Semi-annual channel there are another two base images that fits the host kernel version:
Building and running containers then is straight forward.
Runs a small Node.js web server which listens on port 3000 and can be accessed either from another machine at port 3000 or on the same server with its container IP address. See https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/ for details. Let me know if you need more information. |
To build Node.js images I use these scripts in AppVeyor at the moment:
Step 2 now tests node.exe in nanoserver containers and checks if exit code is fine and expected stdout matches :-) I will update my PR soon as some PGP keys have to be updated there. |
And yes WSL is coming to more and more developer machines on Windows 10. Microsoft also started to provide WSL on Windows Server 2016 so there might be even more adoption in the future. |
I've commented on it before but I don't see the point in testing WSL. It's an emulation layer; any issues that come up on WSL but not on native Linux are bugs that MS has to fix, not us. |
Creating a job to test on Windows containers sounds good. Testing on WSL wouldn't be very useful, issues should be reported in https://github.com/Microsoft/WSL/issues, not here. A WSL job could perhaps be useful for comparison with Linux, but we shouldn't fix issues here. |
Is this something that is likely to get traction and happen at some point? Or should we close this for now? (Containers seems high-value to me, but I could be wrong as I don't know how prevalent containers are in the Windows world.) |
This issue is stale because it has been open many days with no activity. It will be closed soon unless the stale label is removed or a comment is made. |
Windows Container have been GA on Windows Server 2016, for over a year, with both "Windows Server Core" and "NanoServer" as the contained OS.
It might be informative to CI in such containers (we already know of two bugs nodejs/node#8897 and nodejs/node#16603)
WSL went GA with "Windows 10 Fall Creators Update" last month and Has been available on Windows Server 2016 since August. Although WSL is not a production environment many people seem to be using, it at least for development (10 issues labeled WSL)
I'll try to write an ansible script for bootstrapping such environments inside an existing Server2016.
The text was updated successfully, but these errors were encountered: