Skip to content
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

Epic: Backwards-incompatible changes to the Compose file format #2504

Closed
4 tasks done
aanand opened this issue Dec 4, 2015 · 6 comments
Closed
4 tasks done

Epic: Backwards-incompatible changes to the Compose file format #2504

aanand opened this issue Dec 4, 2015 · 6 comments
Assignees
Milestone

Comments

@aanand
Copy link

aanand commented Dec 4, 2015

In the next version of the Compose file format, we plan to make changes to the basic structure of the file (see #2421, #2478). We will preserve existing behaviour for users of the old file format.

This means we have a good opportunity to make other potentially-backwards-incompatible changes to the configuration format, as long as they only apply to files using the new version. If users are upgrading their files anyway, it's less hassle to make other required changes at that time.

Here are some proposed changes it'd be good to get in:

@aanand
Copy link
Author

aanand commented Dec 7, 2015

Added #2458 to the list, because of the implied changes to override logic.

@simonvanderveldt
Copy link

@aanand I guess adding a key for every type of driver makes sense? So not only logging, but also network and volume?
If so, maybe we should aggregate then under a drivers key? So we get:

drivers:
  network:
    driver: foo
    options: bar
  volumes:
    driver: foo
    options: bar
  logging:
    driver: syslog
    options:
      syslog-address: "tcp://192.168.0.42:123"

Although volume drivers could be service/container specific...

@aanand
Copy link
Author

aanand commented Dec 11, 2015

Volume drivers are complicated: you can choose a driver per container, and you can also choose a driver per volume. I presume the per-container driver is used when auto-creating volumes that don't already exist, but I'm not certain.

I presume what you're suggesting here is the ability to configure global default drivers. That might be a nice feature, but I don't think there's any particular pressure to have it in place in the first version of the new config format.

@simonvanderveldt
Copy link

Volume drivers are complicated: you can choose a driver per container, and you can also choose a driver per volume. I presume the per-container driver is used when auto-creating volumes that don't already exist, but I'm not certain.

Agreed, they are a bit more complicated. The same goes for the network driver.
I think using the per-container driver for services defined in docker-compose.yml makes the most sense.

I presume what you're suggesting here is the ability to configure global default drivers. That might be a nice feature, but I don't think there's any particular pressure to have it in place in the first version of the new config format.

Actually I think I misunderstood #2503 to be for a global definition for the logging driver, but the logging key you suggested would be a child of a service defined in docker-compose.yml, correct?
In that case I agree with you that a global default for a driver would be nice to have, but not a necessity at all and adding it later probably won't have impact on the config format.

@jainvipin
Copy link

+1

@dnephin
Copy link

dnephin commented Jan 14, 2016

Looks like all the boxes are checked, so closing this issue.

@dnephin dnephin closed this as completed Jan 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants