Repository navigation
Description
Tell us about your request
End maintenance of Docker Compose v1
Which service(s) is this request for?
Dev-tools
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
The goal of compose v2 was to align on Go for most of our development. In order to focus our time towards new features and enhancements, we need to make v2 the default and phase out v1.
Are you currently working around the issue?
N/A
Additional context
On April 26, 2022, we announced the GA of Docker Compose V2. We want you to have ample time to transition to Compose V2. We wonβt sunset Docker Compose V1 immediately, and developers can still revert to V1. Given the numerous successful transitions to Compose V2 so far, weβve created the following proposed timeline for Docker Compose V1's end of life (EOL):
October 2022 - 6 Months Post GA
- Support of critical bug fixes and severe security issues will end on Compose v1
- Users can alias
docker-composetodocker compose - Users can opt-out of V2 via the Docker Desktop UI or through the
docker-compose disable-v2command
April 2023 - 1 Year Post GA
- Users can alias
docker-composetodocker compose - Users can no longer opt-out of V2 via the Docker Desktop UI or through the
docker-compose disable-v2command in new versions
Note: We have no plans of removing any aliasing of docker-compose to docker compose, we want to make it as easy as possible to switch and not break any of your code.
Weβll monitor feedback here alongside V2βs usage and make adjustments accordingly.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsShipped! Enjoy!
Activity
[-]Compose V1 End of Life Policy[/-][+][Docker Compose] V1 End of Life Policy[/+]ndeloof commentedon Sep 10, 2021
proposed notice on project's github: docker/compose#8589
rfay commentedon Sep 10, 2021
My first response is that this is way too fast, especially since docker-compose v2 is not even yet available for Linux, nor even thought through how it will be available. I think stopping all but security fixes is one thing, but security and basic maintenance probably needs to be a year after v2 becomes available on Linux. And that, of course, depends on how it's made available.
ndeloof commentedon Sep 11, 2021
Not yet "as a system package" (work in progress), but definitively available. This is just a question of running a
curlcommand and many already did.rfay commentedon Sep 11, 2021
Just saying... as a highly motivated user (I need it for ddev tests on Linux) I've been following all the issues on docker-compose v2. And even I haven't yet discovered how you do it, with or without packaging. I was delighted to see https://github.com/docker/compose-switch come out... but it still has no instructions in the readme. When there's a standard, documented way to use and maintain/upgrade docker-compose v2 on Linux (not
docker compose) then it has arrived and the start time for docker-compose on Linux will have arrived.I do think there's some crosstalk about the availability of the
composeplugin for docker, which is mostly do-able on some platforms. But it's not a drop-in replacement or switch for docker-compose. Way too many tools in the linux ecosystem are dependent on docker-compose to hope thatdocker composewill replace them, even when it becomes easier to obtain.ndeloof commentedon Sep 11, 2021
There's no "docker-compose v2 on Linux". Compose V2 is
docker compose.We indeed provide a command line compatibility tool, but that's not expected to be the default usage long terms.
About Linux availability, we indeed don't yet offer those components as system packages. Doesn't mean Linux users can't install Compose v2 and compose-switch. We miss documentation for sure, but this is just a question of days to get this available.
rfay commentedon Sep 11, 2021
I think there may just be a whole bunch of bundled things going on here, and it's going to be important to sort them all out.
There are loads of implications here:
I should note that "running curl commands" is not a generally accepted practice for managed Linux machines, so it will be important to get these tools packaged fully as soon as possible.
I think I won't be the only one confused by the decision to do away with docker-compose. It's an old friend with a thousand uses and continuing it as a wrapper on compose v2 would be so terribly easy.
stephanierifai commentedon Sep 15, 2021
Based on feedback we have decided to focus our efforts on making the experience better for Linux users, this is has been edited above.
For history, the previous proposal was:
π As of September 28th, 2021 new features and bug fixes will only be considered in the V2 codebase. Users will be defaulted into Docker Compose V2 and it will be considered GA. Users can still opt out through the UI and the cli. Docker Compose V1 will only be maintained regarding security issues.
π On December 28th, 2021 Docker Compose V1 will be marked as deprecated.
π By March 28th, 2022 no new contribution will be accepted to the V1 branch, even for security fixes.
BigMorty commentedon Sep 16, 2021
For how long will users be able to switch back to using docker-compose (v1)?
jamshid commentedon Sep 17, 2021
Very glad a
docker-composealias will be provided on Linux, we can't rewrite all scripts to usedocker composeimmediately especially when that requires a not-yet-releaseddocker-cepackage on Linux.Would be nice if
docker-composewere automatically installed byyum/apt-get install docker-ce-clibut probably not a big deal, afaik docker-compose was always a separate curl download or pip install.A little nervous about the push to V2 when there's still some open issues like docker/compose#8505 preventing me from using it fully but hopefully all resolved soon. Also,
docker compose upseems to be restarting services unnecessarily (more than V1docker-compose) but I need to repro and file an issue.jpic commentedon Nov 11, 2021
Thank you very much for the new release!
It would have been great to keep the
convertcommand or to document that it's been dropped in the transitioning documentation. docker/compose#8914Too bad for the "feature" I relied on! But the new spinner is nice, I thought compose was using an external library for that but it turns out it's actually implemented in compose codebase
stephanierifai commentedon Nov 16, 2021
Hi @jpic ! Thanks for your feedback :)
Do you mind sharing what version you are on π€ It should be available in V2 https://docs.docker.com/engine/reference/commandline/compose_convert/, but happy to look into it further.
cc @ulyssessouza
42 remaining items
stephanierifai commentedon Apr 27, 2022
Hi all! I have updated the proposal due to Compose V2 GA announcement. Looking forward to your feedback!
markus-ksg commentedon May 16, 2022
Nope, the behavior with single quotes around the value in docker compose V1 is platform-dependent:
If anything changes with respect to quotes or other escape character processing when reading .env files in compose V2, then this needs to be announced loudly (and correctly) in the migration docs.
https://github.com/compose-spec/compose-spec/blob/master/spec.md sounds like the behavior of compose V2 matches V1 on Linux. That would be great!
fuzzybair commentedon Jan 6, 2023
I just noticed the April 2023 date on
I think this needs pushed out a while because compose V2 as released does not work for building large compose projects @ndeloof just put in a fix docker/compose#9091 that if I am reading correctly is tagged for 2.15.0 and according to the documentation https://docs.docker.com/compose/install/ for windows we need to wait for Docker Desktop to incorporate the change. Given what seems to be a monthly release cycle, we may be able to get it by late Jan. and time to get it into our build environments it is likely mid Feb. leaving only a month and a half to actually verify the fix works before there is no way to disable V2 on windows. (Linux simlink's don't generally work well in windows). Also the default buildkit builder in Docker desktop is not configurable moby/buildkit#2906 making the issues with parallel builds worse. Our system setup is to install docker and disable compose v2 and given the number of issues you find on the web/github related to parallel builds where the solution provided is not possible in windows (due to the above issues).
I propose extending the date out 3-6 months and possibly adding a notice inside the Desktop GUI that V1 will be removed in an upcoming release. To encourage those of us with large systems to give compose V2 another try, as we have been burned for a while. like the comment here docker/compose#9091 (comment) from @WolfspiritM
draco2003 commentedon Feb 11, 2023
Due to MAC + VPN + DNS issues in Go prior to 1.20 our user base is required to use docker-compose v1 in order to use the Python dns resolution paths instead of the Go based ones. Removing the ability to opt out of v2 should be gated by getting a release of Docker Desktop that is built with Go 1.20 or later.
Go 1.20 was released Feb 1
ndeloof commentedon Feb 11, 2023
@draco2003 latest Docker Compose v2.16.0 release is built with Go 1.20, see changelog
draco2003 commentedon Feb 12, 2023
I can confirm v2.16.0 resolves the MAC + DNS + VPN issue! πΎ
Looking forward to seeing it come with Docker Desktop and resolve a ton of our support issues!
Build with golang 1.20
Update docker-compose.md for Compose v2
itepifanio commentedon Apr 24, 2024
@stephanierifai I believe that we can close this issue
ndeloof commentedon Apr 24, 2024
@hyu please close this issue as completed
hyu commentedon Apr 24, 2024
This issue is now closed, as Docker Compose v1 has been deprecated as of July 2023. More details in our docs page, "Migrate to Compose V2".