Proposal: Refactoring to compile Docker Daemon on Windows #10662

Closed
jhowardmsft opened this Issue Feb 9, 2015 · 8 comments

Comments

Projects
None yet
8 participants
@jhowardmsft
Contributor

jhowardmsft commented Feb 9, 2015

Background

Following the Docker and Microsoft announcement in October 2014 (http://news.microsoft.com/2014/10/15/dockerpr/), and the recent PR #9113 for the port of the Docker client portion to Windows, this proposal is for the initial work necessary for the Docker daemon to compile on Windows.

Problem Statement

The existing daemon code base does not compile cross-platform for Windows. This is largely due to a number of ‘Linuxisms’ and system calls which do not have matching Windows counterparts.
Linux specific calls will be factored out by various techniques such as filename_Linux.go and filename_Windows.go; through use of runtime.GOOS conditions; and/or through build tags.

A simple example of the type of factoring would be removing support of the Unix HTTP namespace on Windows (but keeping it on Linux). Windows would support the TCP HTTP namespace only.

In addition, dummy no-op drivers will be added for future support of Windows containers.

Expectations

At the end of the series of PRs relating to this proposal, it is expected that the Docker Daemon will initialise and listen for requests on a TCP port on a Windows platform. It will be largely non-functional except for responding to “version” and “info”.

The functionality of the Docker daemon on Linux platforms will be unchanged.

@ahmetb

This comment has been minimized.

Show comment
Hide comment
@ahmetb

ahmetb Feb 9, 2015

Contributor

Yaay! 👏 🎉 :bowtie:

Contributor

ahmetb commented Feb 9, 2015

Yaay! 👏 🎉 :bowtie:

@tiborvass

This comment has been minimized.

Show comment
Hide comment
@tiborvass

tiborvass Feb 9, 2015

Collaborator

@jhowardmsft I'm all for it! Let's aim 1.6 for the refactor.

Collaborator

tiborvass commented Feb 9, 2015

@jhowardmsft I'm all for it! Let's aim 1.6 for the refactor.

@jessfraz

This comment has been minimized.

Show comment
Hide comment
@jessfraz

jessfraz Feb 9, 2015

Contributor

+1 All for this.

Contributor

jessfraz commented Feb 9, 2015

+1 All for this.

@ahmetb

This comment has been minimized.

Show comment
Hide comment
@ahmetb

ahmetb Feb 10, 2015

Contributor

Can we label this with windows?

Contributor

ahmetb commented Feb 10, 2015

Can we label this with windows?

@icecrime

This comment has been minimized.

Show comment
Hide comment
@icecrime

icecrime Feb 10, 2015

Contributor

Yes! 👍

Let us know how we can help. A function-level segregation using conditional compilation is indeed necessary, but maybe we'll also identify responsibilities along the way that justify adding whole new interfaces to cleanly separate implementations.

I'll share the link here for reference, but some ongoing work by @crosbymichael on libcontainer can help on the lower(est?) level aspect: docker/libcontainer#367.

Contributor

icecrime commented Feb 10, 2015

Yes! 👍

Let us know how we can help. A function-level segregation using conditional compilation is indeed necessary, but maybe we'll also identify responsibilities along the way that justify adding whole new interfaces to cleanly separate implementations.

I'll share the link here for reference, but some ongoing work by @crosbymichael on libcontainer can help on the lower(est?) level aspect: docker/libcontainer#367.

@squillace

This comment has been minimized.

Show comment
Hide comment

happy.

@unclejack

This comment has been minimized.

Show comment
Hide comment
@unclejack

unclejack Jun 3, 2015

Contributor

This proposal has been approved because many PRs for this work have been merged and there are still some open PRs which are part of this work. I'm going to close this because: 1) this has been approved, 2) it's work in progress, 3) there's nothing more left to approve and debate.

Contributor

unclejack commented Jun 3, 2015

This proposal has been approved because many PRs for this work have been merged and there are still some open PRs which are part of this work. I'm going to close this because: 1) this has been approved, 2) it's work in progress, 3) there's nothing more left to approve and debate.

@unclejack unclejack closed this Jun 3, 2015

@jhowardmsft jhowardmsft referenced this issue in docker/docker-py Jul 23, 2015

Closed

Add netmode to tests #691

@Maxvien

This comment has been minimized.

Show comment
Hide comment

Maxvien commented Sep 6, 2015

happy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment