[docker-compose] docker compose v2 support colima? (guarantees backward compatibility.)

I made pr in airflow docs. (docker compose v1 → v2)
I want to check compatibility colima in v2 env.

can I get a answer?
thx.

ref: (#685) feat: docker compose v2 by seunggabi · Pull Request #686 · apache/airflow-site · GitHub

I am not sure what you need an answer to. If you want more people to read your question and try to answer, it is better to descibe the issue directly in the post instead of linkin an other forum so we can read everything, find out what the problem is, which was the question and then answer here…

Despite that I have read the issue on GitHub and I am still not sure what the question is. Is it that you would like to know if Docker Compose v1 is compatible with v2 so you can start to use docker compose command in airflow instead of docker-compose.

In theory, yes. On the other hand Docker Compose v2 had a bug from the beginning, because parsing of environment variables in the compose file had changed so previously working compose files would not always work with Compose v2. I submitted a pull request to fix it and it was eventually accepted, but I haven’t tried if that change was implemented in a Docker Compose release.

The othe rproblem could be that Docker Compose v1 supported different compose yaml versions, but there is no version attribute in a Compose V2 file so some features may work differently if the application relied on something that was or wasn’t in a specific compose yaml version…

This is just an example so I think in most of the cases you would not have problem with Compose v2, but it is not impossible. I wouldn’t rely on an intended compatibility in any application so I wouldn’t do that with Docker Compose either. If you want to make sure that everything works, you need to test every command.

The library in Docker Compose v2 didn’t have a test for multiple variables in one string and this is why the developers didn’t notice this issue,

1 Like

Thank you for your detailed reply.
As you said, I have to write in detail on the forum, but I’m sorry that I couldn’t.

The answer was very helpful.

v2 is designed to be backward compatible in theory
I understood that we couldn’t guarantee 100% because we didn’t test everything on a 1:1 basis.

If there is a bug, I expect it to be fixed over time.
Thank you.

I wasn’t talking about the bugs only. It is impossible to be compatible with every v1 yaml version.

Quote:

The Compose spec merges the legacy 2.x and 3.x versions, aggregating properties across these formats and is implemented by Compose 1.27.0+ .

The version number in the yaml in v2 is just “informative”.

https://docs.docker.com/compose/compose-file/#version-top-level-element

Quote:

Top-level version property is defined by the specification for backward compatibility but is only informative.

A Compose implementation SHOULD NOT use this version …

There is also a page about compatibility regarding the compose command in the docs:

So there are some parameters that don’t exist. However there is a --compatibility flag.

Quote:

--compatibility has been resignified Docker Compose V2. This now means that in the command running V2 will behave as V1 used to do.

So most of the compose files would work even without the compatibility mode, but not all of them.

1 Like

Even though you’re busy with other things,
Thank you for checking accurately.

‘–Compatibility’ flag is well understood.
:slight_smile:

have a nice day!