Closed BJReplay closed 6 months ago
Thanks @BJReplay - but correct me if I'm wrong, this is a "warning" not an error, or are you seeing this no longer work?
In any case, we can explore removing it. If you remove the version: "3.5"
line do you see any problems?
Thanks @jasonacox I was updating my issue (as I accidently) submitted before I'd finished while you commented.
Yes, it's just a warning - it still works.
If you remove the version line entirely, the warning goes away.
I'll do a little more research and see if I can find out when it became optional and see if I can work out the earliest version of Docker or Docker Compose that would break if we removed it. I'll get back here, and if you agree, I can put together a PR to remove it.
I suspect it will need to stay as long powerwall-dashboard continues to support older versions of compose. I've got a vague memory that version 3.8 of the yaml spec is the last one to need it?
I'm almost certain we're using version 2 format (because it uses the services element).
It's supported by docker 1.10 released Feb 4, 2016.
https://docs.docker.com/compose/intro/history/#compose-file-format-versioning describes the history:
Version one of the Docker Compose command-line binary was first released in 2014. It was written in Python, and is invoked with docker-compose. Typically, Compose V1 projects include a top-level version element in the compose.yml file, with values ranging from 2.0 to 3.8, which refer to the specific file formats.
Version two of the Docker Compose command-line binary was announced in 2020, is written in Go, and is invoked with docker compose. Compose V2 ignores the version top-level element in the compose.yml file.
https://docs.docker.com/compose/compose-file/compose-file-v2/
Note there are a couple of potentially confusing versions here: Versions of Docker Compose (V1 and V2) and versions of the compose file format (V1, V2 and V3).
This is a good jumping off point: https://docs.docker.com/compose/intro/history/
My gut feel is that unless someone is running a very old (pre Compose 1.6.0 in 2016) system, we can remove version.
I've got a vague memory that version 3.8 of the yaml spec is the last one to need it?
From my reading, not actually needed after 2.0 - was optional from that point on.
I've put together a PR - feel free to accept or reject based on your assessment :)
My take on it is that:
I've put together a PR - feel free to accept or reject based on your assessment :)
My take on it is that:
- version should be removed
- docker compose (rather than docker-compose) and the set up for docker-compose (rather than the python module - which is V1 docker compose) probably should be part of the main instructions (hence the change to the readme) but I haven't changed anything else.
I encountered this warning today.
As BJReplay stated, I removed the line from my yml file then the warning disappeared. Till now I do not have any problem with the new container established by the modified yml file.
The line I commented out is as the following:
#version: "3.8"
Closing as fix merged.
Problem Docker Compose version 2.25.0 now reports that version is obsolete.
This appears when using the compose-dash.sh helper - for example:
To Reproduce
Host System
Additional context Noticed this on all my Docker Compose examples (Powerwall-Dashboard and others) after this update to Docker.
Checking shows that Version has been optional for a long time.
https://docs.docker.com/compose/compose-file/04-version-and-name/
This bug on Docker Compose notes this new issue: https://github.com/docker/compose/issues/11628
Version has been optional since at least 2020.
I can pull together a PR to remove version from the yml files if desired (to avoid the warning), but it's hard to say if they will then cause a problem with any very early (V1) platforms.