amidaware / tacticalrmm

A remote monitoring & management tool, built with Django, Vue and Go.
https://docs.tacticalrmm.com
Other
3.12k stars 435 forks source link

Specification version 3.7 in docker-compose.yml is unsupported (Debian 10, Docker 20.10, Compose 1.21) #994

Closed nativeit closed 2 years ago

nativeit commented 2 years ago

Server Info (please complete the following information):

Installation Method:

Describe the bug After configuring .env file according to documentation, using the unmodified docker-compose.yml linked in the documentation, issuing docker-compose up -d results in the following error:

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

My software versions are as follows:

root@debian:/# dpkg -l | grep ii | grep docker
ii  docker-ce                                             5:20.10.12~3-0~debian-buster          amd64        Docker: the open-source application container engine
ii  docker-ce-cli                                         5:20.10.12~3-0~debian-buster          amd64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras                             5:20.10.12~3-0~debian-buster          amd64        Rootless support for Docker.
ii  docker-compose                                        1.21.0-3                              all          Punctual, lightweight development environments using Docker
ii  docker-scan-plugin                                    0.12.0~debian-buster                  amd64        Docker scan cli plugin.
ii  golang-docker-credential-helpers                      0.6.1-2+deb10u1                       amd64        native stores to safeguard Docker credentials
ii  python3-docker                                        3.4.1-4                               all          Python 3 wrapper to access docker.io's control socket
ii  python3-dockerpty                                     0.4.1-1                               all          Pseudo-tty handler for docker Python client (Python 3.x)
ii  python3-dockerpycreds                                 0.3.0-1                               all          Python3 bindings for the docker credentials store API

To Reproduce Steps to reproduce the behavior:

  1. On a fresh Debian 10 LAMP VPS with all prerequisites installed
  2. Running Docker Engine v20.10.12~3 and docker-compose v1.21.0-3
  3. Configure .env according to Tactical RMM docs
  4. Download compose spec from Tactical RMM docs here
  5. Run docker-compose up -d

Expected behavior Docker Compose should pull images and run containers specified in docker-compose.yml

Additional context I am not exactly an expert in Docker, however I have been running a Caprover server with dozens of Docker Compose based images for the last few years, and have had my own contributions of complex Caprover one-click-app templates accepted to their official app repository (incl. Redmine+MySQL, Redmine+PostgreSQL, Netbox, and contributed to other app templates like Corteza CRM/ERP and Invoice Ninja).

I only say this to demonstrate a solid foundational understanding of Docker and Docker Compose specs, and a high comfort level in writing Compose specifications with dynamic variables and advanced features. I will continue to troubleshoot this problem on my own, and will post back if I find the cause of the problem (or figure out where I went wrong). I am also happy to submit a PR if I find a fix that does not affect other features/functions in any other way if that would make the dev's lives easier.

Thank you so much for your work on this project, I am an eager supporter of this endeavor!

nativeit commented 2 years ago

Evidently 1.21.0-3 is the latest version available in the apt repos for Debian Buster. I found a workaround by manually installing Docker Compose according to the instructions at https://docs.docker.com/compose/install/. This brought me to version 1.29.2, and resolved this issue.