OHDSI / Broadsea

Broadsea deploys the core OHDSI technology stack (Atlas & R Hades), using cross-platform Docker container technology.
http://ohdsi.github.io/Broadsea/
Apache License 2.0
71 stars 54 forks source link

changed "docker compose" to "docker-compose" in README #108

Closed The-Alchemist closed 6 months ago

The-Alchemist commented 9 months ago

this makes it consistent

alondhe commented 6 months ago

It does vary from system to system. In RHEL, it's docker compose, on others, it's docker-compose. We'll update in the Readme.

haydenbspence commented 6 months ago

Sorry to comment on a closed issue, but I want to add that 'docker-compose' is deprecated. It is an older Python project that has now been migrated to Go as a single binary executable. All systems have 'docker compose' as of Docker CLI 1.27.0 / Aug 2020 it is the primary compose method across systems.

I would suggest Broadsea support a minimal docker version (1.27.0+) and instead do the opposite of this pull request -- consistently use 'docker compose' and remove all mention of 'docker-compose'. Anyone having issues with 'docker-compose' should be advised to update their Docker CLI.

Some additional rationale:

The-Alchemist commented 6 months ago

Sorry to comment on a closed issue, but I want to add that 'docker-compose' is deprecated. It is an older Python project that has now been migrated to Go as a single binary executable. All systems have 'docker compose' as of Docker CLI 1.27.0 / Aug 2020 it is the primary compose method across systems.

I would suggest Broadsea support a minimal docker version (1.27.0+) and instead do the opposite of this pull request -- consistently use 'docker compose' and remove all mention of 'docker-compose'. Anyone having issues with 'docker-compose' should be advised to update their Docker CLI.

Some additional rationale:

  • Supporting the deprecated 'docker-compose' will significantly increase the amount of bugs and workload to respond to technical assistance.
  • The dependency itself is deprecated after migration to Go, it does not receive any updates to be compatible with recent versions of Docker Engine.
  • There have been some significant performance and security updates since 1.27.0 like AppArmor, handling orphans, sync, and multi-file configuration.

Thanks, @haydenbspence , this was super informative. I looked at the Docker docs (https://docs.docker.com/compose/install/):

Effective July 2023, Compose V1 stopped receiving updates and is no longer in new Docker Desktop releases. Compose V2 has replaced it and is now integrated into all current Docker Desktop versions. For more information, see Migrate to Compose V2.

There's even a whole migration guide: https://docs.docker.com/compose/migrate/

Although certainly not straightforward, all these things validate your point that docker compose is the preferred syntax.

Of course, those with older distros (or with older docker's, like the Debian 12, I believe) will still have to use the old docker-compose syntax.

And it's worth pointing out that docker-compose will almost always work (because it's an alias), but docker compose will only work for those with a Docker since 202307.

alondhe commented 6 months ago

Thanks @haydenbspence and @The-Alchemist - I misread this the other day and you're both right. I'd like to shift us to Compose V2 and docker compose (no hyphen) for this 3.1 release of Broadsea that I'm finally getting near the finish line.