Docker-compose: command not found

I follow the instructions exactly:
Deploy SeaTable Developer Edition with Docker

After step:

cd /opt/seatable
docker-compose up

I get the error:

[root@seatable:/opt/seatable] # docker-compose up
bash: docker-compose: command not found

Operating system:

[root@seatable:/opt] # lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy

Console logs:

[root@seatable:/opt] # curl -fsSL get.docker.com | bash
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
debconf: delaying package configuration, since apt-utils is not installed
+ sh -c 'install -m 0755 -d /etc/apt/keyrings'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg'
+ sh -c 'chmod a+r /etc/apt/keyrings/docker.gpg'
+ sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list'
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null'
debconf: delaying package configuration, since apt-utils is not installed
+ sh -c 'docker version'
Client: Docker Engine - Community
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:31:44 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:31:44 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.24
  GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

[root@seatable:/opt] # docker pull seatable/seatable-developer:latest
latest: Pulling from seatable/seatable-developer
7c3b88808835: Pull complete
6ea0e81b1046: Pull complete
2cdac9582559: Pull complete
8e2c501e7c11: Pull complete
3d13eeb3085e: Pull complete
adc9e8e61270: Pull complete
78382a8079b1: Pull complete
36d1c271602c: Pull complete
72db0cf5876b: Pull complete
23bd571c5c25: Pull complete
43d61d6d167b: Pull complete
7be86c0ff257: Pull complete
953ced917951: Pull complete
f87a09cf55f9: Pull complete
62dc44f31d60: Pull complete
fe7dd6a4f753: Pull complete
0d1ff1ec511c: Pull complete
cd4ae641bf77: Pull complete
7b03974599be: Pull complete
810a5eaa96f9: Pull complete
3ce1af31b814: Pull complete
Digest: sha256:21f25eb7cac30c5d4aba73ec4458e97990eb65bb5ad54575c873c03169fbc29c
Status: Downloaded newer image for seatable/seatable-developer:latest
docker.io/seatable/seatable-developer:latest
[root@seatable:/opt] #
[root@seatable:/opt] # mkdir /opt/seatable
[root@seatable:/opt] #
[root@seatable:/opt/seatable] # wget -O "docker-compose.yml" "https://manual.seatable.io/docker/Developer-Edition/docker-compose.yml"
--2023-10-11 13:07:14--  https://manual.seatable.io/docker/Developer-Edition/docker-compose.yml
Resolving manual.seatable.io (manual.seatable.io)... 89.145.160.79, 2a04:c46:e00:8c58:4dc:d8ff:fe00:1d
Connecting to manual.seatable.io (manual.seatable.io)|89.145.160.79|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://admin.seatable.io/docker/Developer-Edition/docker-compose.yml [following]
--2023-10-11 13:07:16--  https://admin.seatable.io/docker/Developer-Edition/docker-compose.yml
Resolving admin.seatable.io (admin.seatable.io)... 185.199.110.153, 185.199.111.153, 185.199.108.153, ...
Connecting to admin.seatable.io (admin.seatable.io)|185.199.110.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1547 (1.5K) [text/yaml]
Saving to: ‘docker-compose.yml’

docker-compose.yml                                          100%[========================================================================================================================================>]   1.51K  --.-KB/s    in 0s

2023-10-11 13:07:17 (3.60 MB/s) - ‘docker-compose.yml’ saved [1547/1547]

[root@seatable:/opt/seatable] # docker-compose up
bash: docker-compose: command not found

Those docker-composer did not install.
What am I doing wrong ?

Docker compose can be installed by running apt install docker-compose.

1 Like

Apologies for the frankness: No, you do NOT.

You did not install Docker and Docker Compose as described here.

1 Like

If this step is so important for the entire further sequence of actions, then it’s a pity that it is not clearly described in the instructions :frowning:

Executed, carefully look at the attached console log!
I’ll duplicate it again, here’s what’s written in the instructions:

Execute the following script to install docker and docker compose plugin. [...]
> curl -fsSL get.docker.com | bash

Here is the result of running this command:

[root@seatable:/opt] # curl -fsSL get.docker.com | bash
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
debconf: delaying package configuration, since apt-utils is not installed
+ sh -c 'install -m 0755 -d /etc/apt/keyrings'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg'
+ sh -c 'chmod a+r /etc/apt/keyrings/docker.gpg'
+ sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list'
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null'
debconf: delaying package configuration, since apt-utils is not installed
+ sh -c 'docker version'
[...]

In the script itself you can even find a description:

# - Installs the latest stable release (by default) of Docker CLI, Docker Engine,
#   Docker Buildx, Docker Compose, containerd, and runc.

But it looks like Docker Compose now has to be installed separately :frowning:

Try docker compose instead of docker-compose. They made it a plugin of the docker command a while ago.
Maybe this can updated in the docs.

1 Like

Yes, that seems to be the case.
I found the information in the official documentation.
https://docs.docker.com/compose/
https://docs.docker.com/compose/migrate/:

Migrate to Compose V2

From July 2023 Compose V1 stopped receiving updates. It’s also no longer available in new releases of Docker Desktop.
Compose V2, which was first released in 2020, is included with all currently supported versions of > Docker Desktop. It offers an improved CLI experience, improved build performance with BuildKit, and continued new-feature development.

How do I switch to Compose V2?

The easiest and recommended way is to make sure you have the latest version of Docker Desktop, which bundles the Docker Engine and Docker CLI platform including Compose V2.
With Docker Desktop, Compose V2 is always accessible as docker compose. Additionally, the Use Compose V2 setting is turned on by default, which provides an alias from docker-compose.

@ vqui Thx!!

p.s.
apt install docker-compose – also solves the problem :wink:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.