Skip to content
This repository has been archived by the owner on Jan 1, 2021. It is now read-only.

Embed docker-compose inside boot2docker #932

Closed
wants to merge 2 commits into from
Closed

Embed docker-compose inside boot2docker #932

wants to merge 2 commits into from

Conversation

dduportal
Copy link
Contributor

Hello dear maintainers !

Since we have a lot of people dealing with boot2docker + virtual box portability issues (Windows essentially, but also vbox sharing folders and filesystem homogeneity between docker and compose client with the remote system), here is a little proposal to provide compose as a full part inside boot2docker.

Cons :

  • Add a 5mb overhead :
docker@boot2docker:~$ docker-compose --version
docker-compose 1.2.0
docker@boot2docker:~$ du -sh /usr/local/bin/docker-compose 
5.0M    /usr/local/bin/docker-compose
  • Docker-compose version is pretty tied to boot2docker releases (seems acceptable at first sight since you have a pretty good release monthly cycle)

Pros :

  • Does not tie the end users to the use of compose in remote mode
  • Let people use compose while you hard work on volumes, compose, boot2docker and all other hot stuff for this summer

Advices ?

For reference, here is a set of related issues/discussions on that topic (sendfile + vbox, windows support, docker volume path) :

Thanks for your time !

Signed-off-by: Damien DUPORTAL <damien.duportal@gmail.com>

Factorizing compose version to ENV for future updates

Signed-off-by: Damien DUPORTAL <damien.duportal@gmail.com>
@simonvanderveldt
Copy link
Contributor

@dduportal isn't it enough to be able to run compose inside a container?
Afaik with the recent fixes your image works as it should, right?

@dduportal
Copy link
Contributor Author

Hello !
You're right when talking about "advanced" user whom masters the data volumes.

In that case, target is "beginners" and "basics" users if docker who has not yet (or do not need) to think about complex filesystems path and bindings :)

Also, since there is no "official" docker-compose image, i'm not fan of pushing a personnal one : it does not bring enough quality insurance on my mind.

This was the philosophy of this PR, but maybe it will add more confusion also.

But anyway it is just a proposal. Thank for your time !

@josephpage
Copy link

Great !!
👍 👍 👍 👍 👍 👍 👍

@colltoaction
Copy link

As a total beginner that just wants to set up a dev environment in its Windows machine, I'd love to see docker-compose included by default. And even better if something like boot2docker compose was available from CMD or PS.

@dduportal
Copy link
Contributor Author

Updated to take in account compose 1.3.1 (https://github.com/docker/compose/releases/tag/1.3.1)

@tianon
Copy link
Contributor

tianon commented Jul 8, 2015

@dduportal I like the idea, but I don't think I'm comfortable including this as-is in the base OS, and would prefer that we document the easiest way for users to do this (especially via bootlocal.sh for persistence)

Shouldn't users usually be running docker-compose directly on their host instead of inside the VM?

@lmakarov
Copy link
Contributor

lmakarov commented Jul 8, 2015

@tianon

Shouldn't users usually be running docker-compose directly on their host instead of inside the VM?

This will be true and make this PR irrelevant as soon as docker-compose gets ported to Windows... :)

@dduportal
Copy link
Contributor Author

@tianon Yep, you're right, as @lmakarov stated, docker-compose should be run from the client outside boot2docker :)

This is why I propose this PR : for now, since docker-compose for Windows is not a reality, it will help user to begin with, without suffering :)

Another thing is the volume sharing which is a pain. The new Docker plugins may help, but the conceptual problem the user have still exists : I want to share the volumes from C:\bla to /app in the data container".

The idea of the PR will help user to begin softly, with a docker-engine path visibility, again the time that -v will be fully supported.

When the 2 things would have been implemented, i'll be the first the PR to remove the docker-compose binary :

  • For achieving full transparent hypervisor concept with a ligthweight boot2docker
  • Push user to understand the volume implications
  • Follow you, Docker maintainers, state of mind by using client / side Docker that take advantages of API

Anyway, thank for your time :)

@josephpage
Copy link

Embed docker-compose inside boot2docker may be a way to solve the inequality between OS X/Linux and Windows in the brand new (and awesome) Docker Toolbox.

@dduportal
Copy link
Contributor Author

Just a note here : since docker-compose is now supported in Windows, it does not make sense to pre-install inside boot2docker now :)

So : closing the MR !

@dduportal dduportal closed this Nov 21, 2015
@josephpage
Copy link

Yes ! 👍

@ghahramani
Copy link

@dduportal Hi, now docker-compose supports all operating system, so I think it's good time to add it to boot2docker

you can check it here
https://docs.docker.com/compose/install/

@dduportal
Copy link
Contributor Author

Hello @ghahramani , given:

  • The future of boot2docker (that should be dumped in the future, or change a lot)
  • The stabilization of docker-compose patterns uses (e.g. using docker-compose and docker-cli outside boot2docker)

I closed the PR because it did not make any sense, especially regarding the time investment to maintain compose version while it is already packaged on docker-toolbox.

In your case, if you strongly need docker-compose inside boot2docker, you should build you own boot2docker to ensure control of this behavior.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants