Version of docker-compose-yaml is unsupported

My issue is:
ERROR: Version in "./docker-compose-ce.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.

and my yml file:

version: '3.9'
services:
  db:
    image: mariadb:10.10
    restart: unless-stopped
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
      MYSQL_DATABASE: "passbolt"
      MYSQL_USER: "passbolt"
      MYSQL_PASSWORD: "P4ssb0lt"
    volumes:
      - database_volume:/var/lib/mysql

  passbolt:
    image: passbolt/passbolt:latest-ce
    #Alternatively you can use rootless:
    #image: passbolt/passbolt:latest-ce-non-root
    restart: unless-stopped
    depends_on:
      - db
    environment:
      APP_FULL_BASE_URL: https://192.168.31.196:8081
      DATASOURCES_DEFAULT_HOST: "db"
      DATASOURCES_DEFAULT_USERNAME: "passbolt"
      DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt"
      DATASOURCES_DEFAULT_DATABASE: "passbolt"
    volumes:
      - gpg_volume:/etc/passbolt/gpg
      - jwt_volume:/etc/passbolt/jwt
    command: ["/usr/bin/wait-for.sh", "-t", "0", "db:3306", "--", "/docker-entrypoint.sh"]
    ports:
      - 80:80
      - 443:443
      - 8081:8081
    #Alternatively for non-root images:
    # - 80:8080
    # - 443:4433

volumes:
  database_volume:
  gpg_volume:
  jwt_volume:

can someone help me | i’ve runned sudo apt update && sudo apt upgrade -y several times and nothing changed.

hardware: raspi 4b 2gb os: raspi os lite 64x

any of healthcheck doesn’t work and idk where are logs

Hi @Adameczu Welcome to the forum! Not sure about the error you posted, what version Docker are you running?

I think you are also going to need to change this to:

ports:
      - 8081:80
      - 443:443
1 Like

Hi !

At first sight, it seems that your docker-compose is not able to run the version 3.9 of docker-compose files. I’m not sure we have specific things for the 3.9 in this file. So, I guess there are 2 possibilities:

  • update docker-compose on another channel to have a more recent version if possible
  • try to change the version in the file to version: '3.3' and see how it works (normally docker-compose will block if it finds things in the file it cannot proceed)

While writing this answer I took a look on Internet and to upgrade your docker-compose on Raspberry seems not that a trivial task apparently. I saw on a Raspberry forum somebody who installed a more recent version using pip otherwise it’s maybe not possible with the standard package manager. I saw this thread and didn’t tested, so before doing that if you wish, make backups just in case of: Docker-compose version issue - Raspberry Pi Forums

But, first, a very easy thing to try could be to change the version in the yml file.

1 Like

result from sudo docker version

Client:
 Version:           20.10.5+dfsg1
 API version:       1.41
 Go version:        go1.15.15
 Git commit:        55c4c88
 Built:             Mon May 30 18:34:49 2022
 OS/Arch:           linux/arm
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.5+dfsg1
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.15
  Git commit:       363e9a8
  Built:            Mon May 30 18:34:49 2022
  OS/Arch:          linux/arm
  Experimental:     false
 containerd:
  Version:          1.4.13~ds1
  GitCommit:        1.4.13~ds1-1~deb11u4
 runc:
  Version:          1.0.0~rc93+ds1
  GitCommit:        1.0.0~rc93+ds1-5+deb11u2
 docker-init:
  Version:          0.19.0
  GitCommit:

after editing yml file like suggested from comment above

version: '3.3'
services:
  db:
    image: mariadb:10.10
    restart: unless-stopped
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
      MYSQL_DATABASE: "passbolt"
      MYSQL_USER: "passbolt"
      MYSQL_PASSWORD: "P4ssb0lt"
    volumes:
      - database_volume:/var/lib/mysql

  passbolt:
    image: passbolt/passbolt:latest-ce
    #Alternatively you can use rootless:
    #image: passbolt/passbolt:latest-ce-non-root
    restart: unless-stopped
    depends_on:
      - db
    environment:
      APP_FULL_BASE_URL: https://192.168.31.196:8081
      DATASOURCES_DEFAULT_HOST: "db"
      DATASOURCES_DEFAULT_USERNAME: "passbolt"
      DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt"
      DATASOURCES_DEFAULT_DATABASE: "passbolt"
    volumes:
      - gpg_volume:/etc/passbolt/gpg
      - jwt_volume:/etc/passbolt/jwt
    command: ["/usr/bin/wait-for.sh", "-t", "0", "db:3306", "--", "/docker-entrypoint.sh"]
    ports:
      - 8081:80
      - 443:443

volumes:
  database_volume:
  gpg_volume:
  jwt_volume:

my result is:

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

I suppose then that the yml coud be read with version 3.3. Now, it means that docker itself is probably not running right now.

You can try this command to confirm that:

sudo systemctl status docker.service

And if the output is showing that docker is not running you can run the following:

sudo systemctl start docker.service

It should start docker and you should be able to run again the docker-compose up as before.

1 Like

there is still the same error

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Okay, that’s weird.

Is it possible for you to provide us with the output of the command to check the status of docker.service.

sudo systemctl status docker.service

thats all i could copy form my terminal over ssh

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-05-19 19:10:03 CEST; 3 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1509 (dockerd)
      Tasks: 42
        CPU: 43min 8.413s
     CGroup: /system.slice/docker.service
             ├─1509 /usr/sbin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
             ├─1656 /usr/sbin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.17.0.2 -container-port 9000
             ├─3574 /usr/sbin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 80
             └─3588 /usr/sbin/docker-proxy -proto udp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 80

May 20 18:15:32 pi dockerd[1509]: time="2023-05-20T18:15:32.574323601+02:00" level=warning msg="Published ports are discarded when using host network mode"
May 20 18:15:32 pi dockerd[1509]: time="2023-05-20T18:15:32.819192143+02:00" level=warning msg="Published ports are discarded when using host network mode"
May 20 18:20:12 pi dockerd[1509]: time="2023-05-20T18:20:12.378474523+02:00" level=error msg="attach failed with error: error attaching stderr stream: write unix /run/docker.sock->@: write: broken pipe"
May 20 18:20:15 pi dockerd[1509]: time="2023-05-20T18:20:15.003574127+02:00" level=error msg="attach failed with error: error attaching stdout stream: write unix /run/docker.sock->@: write: broken pipe"
May 20 18:20:16 pi dockerd[1509]: time="2023-05-20T18:20:16.005465795+02:00" level=error msg="attach failed with error: error attaching stderr stream: write unix /run/docker.sock->@: write: broken pipe"
May 20 18:20:21 pi dockerd[1509]: time="2023-05-20T18:20:21.144702413+02:00" level=error msg="attach failed with error: error attaching stderr stream: write unix /run/docker.sock->@: write: broken pipe"
May 20 18:20:41 pi dockerd[1509]: time="2023-05-20T18:20:41.208496301+02:00" level=info msg="ignoring event" container=967b402ec35288300d094e25ae41bd5cb862bbf2c5e130555d910e1b166f6b41 module=libcontainerd nam>
May 20 18:21:09 pi dockerd[1509]: time="2023-05-20T18:21:09.948253779+02:00" level=warning msg="Published ports are discarded when using host network mode"
May 20 18:21:10 pi dockerd[1509]: time="2023-05-20T18:21:10.197501688+02:00" level=warning msg="Published ports are discarded when using host network mode"
May 20 18:21:58 pi dockerd[1509]: time="2023-05-20T18:21:58.265599120+02:00" level=info msg="ignoring event" container=ce26f75320ca35712b04f6bcae22648cc1c8300e4bb3ca7fab675d1884f301e8 module=libcontainerd nam>

cuz idk how to change font to smaller

It’s actually running. Checking on the Internet I saw that some people resolved their docker issues running docker-composer as sudo. I don’t know if it’s the way you did it. If not, can you give a try please?

sudo docker-compose up
1 Like

Otherwise, it probably means that we should take a look at the DOCKER_HOST environment variable as it is said in the error message.

docker-compose up
ERROR:
        Can't find a suitable configuration file
in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml,
docker-compose.yaml 
docker-compose -f docker-compo
se-ce.yaml up
ERROR: Couldn't connect to Docker daemon at http+
docker://localhost - is it running?

If it's at a non-standard location, specify the U
RL with the DOCKER_HOST environment variable. 

its strangely cutted cuz its from my phone

Sorry, I meant, could you try to run the command with sudo?

now there is no arm v7

ERROR: no matching manifest for linux/arm/v7 in the manifest list entries 

Okay, I took a look on DockerHub, and it seems that mariadb doesn’t provide package for arm/v7 architectures.
Another solution could be to try with another mariadb docker image that is compatible with this architecture.

I found this one Docker
Be careful though, it looks reliable to me, but it’s not an official image from mariadb (use at your own risk!).

Here’s an updated version of the docker compose file that include the change for both the version and the mariadb docker image.

version: '3.3'
services:
  db:
    image: linuxserver/mariadb:latest
    restart: unless-stopped
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
      MYSQL_DATABASE: "passbolt"
      MYSQL_USER: "passbolt"
      MYSQL_PASSWORD: "P4ssb0lt"
    volumes:
      - database_volume:/var/lib/mysql

  passbolt:
    image: passbolt/passbolt:latest-ce
    #Alternatively you can use rootless:
    #image: passbolt/passbolt:latest-ce-non-root
    restart: unless-stopped
    depends_on:
      - db
    environment:
      APP_FULL_BASE_URL: https://192.168.31.196:8081
      DATASOURCES_DEFAULT_HOST: "db"
      DATASOURCES_DEFAULT_USERNAME: "passbolt"
      DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt"
      DATASOURCES_DEFAULT_DATABASE: "passbolt"
    volumes:
      - gpg_volume:/etc/passbolt/gpg
      - jwt_volume:/etc/passbolt/jwt
    command: ["/usr/bin/wait-for.sh", "-t", "0", "db:3306", "--", "/docker-entrypoint.sh"]
    ports:
      - 80:80
      - 443:443
      - 8081:8081
    #Alternatively for non-root images:
    # - 80:8080
    # - 443:4433

volumes:
  database_volume:
  gpg_volume:
  jwt_volume:

pi@pi:~/Passbolt $ sudo docker-compose -f docker-compose-ce.yaml up

Pulling db (linuxserver/mariadb:latest)...
latest: Pulling from linuxserver/mariadb
29efd1f96797: Pull complete
fc9e78fee11f: Pull complete
697efb6cb645: Pull complete
1479379ae153: Pull complete
63ca962963e7: Pull complete
aa4b7ca0ff7f: Pull complete
38fe256dfecf: Pull complete
Digest: sha256:c1d778dc18cc4d46bd27d11bf516eef0ebcff831e865a474fb588e15134c2629
Status: Downloaded newer image for linuxserver/mariadb:latest
Pulling passbolt (passbolt/passbolt:latest-ce)...
latest-ce: Pulling from passbolt/passbolt
a27027e97f26: Pull complete
7a1fcbcf223a: Pull complete
72ed5e739d27: Pull complete
fc76faa39895: Pull complete
f093f2996b49: Pull complete
8fe1cd056751: Pull complete
8370d71c4036: Pull complete
888f7637c7a8: Pull complete
9a6201fe5b37: Pull complete
e7d61a8f77d9: Pull complete
cc8b6ca64f7f: Pull complete
e9809d95a216: Pull complete
Digest: sha256:9a5bd876670129f1920d6b79a4468caf9fce47d4e7710ad87b59ecf9194eaf98
Status: Downloaded newer image for passbolt/passbolt:latest-ce
Creating passbolt_db_1 ... done
Creating passbolt_passbolt_1 ...
Creating passbolt_passbolt_1 ... error

ERROR: for passbolt_passbolt_1  Cannot start service passbolt: driver failed programming external connectivity on endpoint passbolt_passbolt_1 (b46bf8281aca45771a44bd6a6b47339a9ef24aa9e07f02d4222ed85f23f69960): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use

ERROR: for passbolt  Cannot start service passbolt: driver failed programming external connectivity on endpoint passbolt_passbolt_1 (b46bf8281aca45771a44bd6a6b47339a9ef24aa9e07f02d4222ed85f23f69960): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.

should i change it to sth like 81?

It depends, you have a server running on port 80 already. If it’s not something you’re using it you can shutdown the process that uses it or as you said, you can change the port to 81.

like on 80 I use nextcloud but I think I can change it ports

even after unlocking port 80 there is still same error

Did you try my suggestion for ports so 8081 goes to 80?