docksal: Installation error when docker-se version is higher than the version required in the installation script

Description

Before a few days I stumbled upon issue when trying to install Docksal on the Arch Linux based distribution.

I would like to configure Docksal on Arch based Linux distro (Manjaro Linux). I have Docker installed (version 19.03.8-ce) but when I try to run Docksal install script it says:

" ERROR:  Docker version should be 19.03.4 or greater.
        Automated Docker installation is not supported on this platform.
        Install Docker 19.03.4 or greater manually and run Docksal installation again.
"

The output of $ fin docker version --format '{{.Client.Version}}' and $ fin docker version --format '{{.Server.Version}}':

$ fin docker version --format '{{.Client.Version}}'
19.03.8-ce

$ fin docker version --format '{{.Server.Version}}'
19.03.8-ce

$ docker version
Client:
 Version:           19.03.8-ce
 API version:       1.40
 Go version:        go1.14.1
 Git commit:        afacb8b7f0
 Built:             Thu Apr  2 00:04:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.8-ce
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.14.1
  Git commit:       afacb8b7f0
  Built:            Thu Apr  2 00:04:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.3.4.m
  GitCommit:        d76c121f76a5fc8a462dc64594aea72fe18e1178.m
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

In the meantime, I saw there is a package for Docksal in the AUR (https://aur.archlinux.org/packages/docksal/) so I gave it a try. It works but I can’t upgrade Docksal in Docksal way by fin update because of the same issue described in my previous message. But if possible, I would like to use the official installation script and only issue is this Docker version check. Can you make this installation/update script less restrictive? Because in this case, I have newer version than it’s required at the moment…

Output of FIN_DEBUG=1 fin debug is_docker_version and FIN_DEBUG=1 fin debug is_docker_server_version:

$ FIN_DEBUG=1 fin debug is_docker_version
+ is_tty
+ [[ -t 0 ]]
+ which tput
++ tput cols
+ COLUMNS=237
++ tput lines
+ LINES=53
+ export LINES COLUMNS
+ is_mac
+ [[ Linux == \D\a\r\w\i\n ]]
+ which git
++ git config --get --global user.email
+ export GIT_USER_EMAIL=
+ GIT_USER_EMAIL=
++ git config --get --global user.name
+ export GIT_USER_NAME=
+ GIT_USER_NAME=
+ [[ -f /home/rogi/.docksal/docksal.env ]]
+ set -a
+ source /home/rogi/.docksal/docksal.env
++ DOCKSAL_UUID=6f63b0b0-7035-fd07-6363-21a86ff2c2d9
+ set +a
+ [[ 6f63b0b0-7035-fd07-6363-21a86ff2c2d9 == '' ]]
++ get_project_path
++ [[ '' == '' ]]
+++ upfind .docksal
+++ [[ .docksal == '' ]]
+++ local _path
++++ [[ ! -f .docksal ]]
++++ [[ ! -d .docksal ]]
++++ [[ -f .docksal ]]
++++ [[ -d .docksal ]]
+++++ pwd
+++++ is_windows
+++++ [[ Linux == \C\y\g\w\i\n ]]
+++++ is_wsl
+++++ [[ Linux == \W\S\L ]]
++++++ which pwd
+++++ /usr/bin/pwd -L
++++ echo /home/rogi
++++ exit
+++ _path=/home/rogi
+++ [[ /home/rogi == '' ]]
+++ is_windows
+++ [[ Linux == \C\y\g\w\i\n ]]
+++ echo /home/rogi
++ DOCKSAL_PATH=/home/rogi
++ [[ /home/rogi != \/\h\o\m\e\/\r\o\g\i ]]
+ [[ '' != '' ]]
+ is_windows
+ [[ Linux == \C\y\g\w\i\n ]]
+ is_root
++ id -u
+ [[ 1000 == \0 ]]
++ id -u
+ export HOST_UID=1000
+ HOST_UID=1000
++ id -g
+ export HOST_GID=1001
+ HOST_GID=1001
+ is_docker_native
+ [[ 0 == \1 ]]
+ is_wsl
+ [[ Linux == \W\S\L ]]
+ export DOCKSAL_DNS1=192.168.64.100
+ DOCKSAL_DNS1=192.168.64.100
+ export DOCKSAL_DNS2=8.8.8.8
+ DOCKSAL_DNS2=8.8.8.8
+ wsl_mount_drives
+ is_wsl
+ [[ Linux == \W\S\L ]]
+ return
+ is_linux
+ [[ Linux == \L\i\n\u\x ]]
+ export DOCKER_HOST=
+ DOCKER_HOST=
+ [[ '' != '' ]]
+ is_docker_running
+ is_linux
+ [[ Linux == \L\i\n\u\x ]]
+ docker version
+ export DOCKER_RUNNING=true
+ DOCKER_RUNNING=true
+ export MYSQL_HOST=db
+ MYSQL_HOST=db
+ export MYSQL_ROOT_PASSWORD=root
+ MYSQL_ROOT_PASSWORD=root
+ export MYSQL_USER=user
+ MYSQL_USER=user
+ export MYSQL_PASSWORD=user
+ MYSQL_PASSWORD=user
+ export MYSQL_DATABASE=default
+ MYSQL_DATABASE=default
+ [[ debug == \@* ]]
+ case "$1" in
+ shift
+ [[ is_docker_version == \-\c ]]
+ [[ is_docker_version == \-\-\l\o\a\d\-\c\o\n\f\i\g\u\r\a\t\i\o\n ]]
+ eval is_docker_version
++ is_docker_version
++ is_pwd
+++ cat /etc/motd
++ [[ '' =~ The PWD team ]]
++ is_katacoda
++ [[ '' != '' ]]
++ is_linux
++ [[ Linux == \L\i\n\u\x ]]
++ which docker
+++ docker version --format '{{.Client.Version}}'
+++ tr -d '\r'
++ local version=19.03.8-ce
+++ ver_to_int 19.03.4
+++ echo 19.03.4
+++ awk -F. '{ printf("%d%03d%03d", $1,$2,$3); }'
+++ ver_to_int 19.03.8-ce
+++ echo 19.03.8-ce
+++ awk -F. '{ printf("%d%03d%03d", $1,$2,$3); }'
++ ((  19003004 <= 19003008  ))
$ FIN_DEBUG=1 fin debug is_docker_server_version
+ is_tty
+ [[ -t 0 ]]
+ which tput
++ tput cols
+ COLUMNS=237
++ tput lines
+ LINES=53
+ export LINES COLUMNS
+ is_mac
+ [[ Linux == \D\a\r\w\i\n ]]
+ which git
++ git config --get --global user.email
+ export GIT_USER_EMAIL=
+ GIT_USER_EMAIL=
++ git config --get --global user.name
+ export GIT_USER_NAME=
+ GIT_USER_NAME=
+ [[ -f /home/rogi/.docksal/docksal.env ]]
+ set -a
+ source /home/rogi/.docksal/docksal.env
++ DOCKSAL_UUID=6f63b0b0-7035-fd07-6363-21a86ff2c2d9
+ set +a
+ [[ 6f63b0b0-7035-fd07-6363-21a86ff2c2d9 == '' ]]
++ get_project_path
++ [[ '' == '' ]]
+++ upfind .docksal
+++ [[ .docksal == '' ]]
+++ local _path
++++ [[ ! -f .docksal ]]
++++ [[ ! -d .docksal ]]
++++ [[ -f .docksal ]]
++++ [[ -d .docksal ]]
+++++ pwd
+++++ is_windows
+++++ [[ Linux == \C\y\g\w\i\n ]]
+++++ is_wsl
+++++ [[ Linux == \W\S\L ]]
++++++ which pwd
+++++ /usr/bin/pwd -L
++++ echo /home/rogi
++++ exit
+++ _path=/home/rogi
+++ [[ /home/rogi == '' ]]
+++ is_windows
+++ [[ Linux == \C\y\g\w\i\n ]]
+++ echo /home/rogi
++ DOCKSAL_PATH=/home/rogi
++ [[ /home/rogi != \/\h\o\m\e\/\r\o\g\i ]]
+ [[ '' != '' ]]
+ is_windows
+ [[ Linux == \C\y\g\w\i\n ]]
+ is_root
++ id -u
+ [[ 1000 == \0 ]]
++ id -u
+ export HOST_UID=1000
+ HOST_UID=1000
++ id -g
+ export HOST_GID=1001
+ HOST_GID=1001
+ is_docker_native
+ [[ 0 == \1 ]]
+ is_wsl
+ [[ Linux == \W\S\L ]]
+ export DOCKSAL_DNS1=192.168.64.100
+ DOCKSAL_DNS1=192.168.64.100
+ export DOCKSAL_DNS2=8.8.8.8
+ DOCKSAL_DNS2=8.8.8.8
+ wsl_mount_drives
+ is_wsl
+ [[ Linux == \W\S\L ]]
+ return
+ is_linux
+ [[ Linux == \L\i\n\u\x ]]
+ export DOCKER_HOST=
+ DOCKER_HOST=
+ [[ '' != '' ]]
+ is_docker_running
+ is_linux
+ [[ Linux == \L\i\n\u\x ]]
+ docker version
+ export DOCKER_RUNNING=true
+ DOCKER_RUNNING=true
+ export MYSQL_HOST=db
+ MYSQL_HOST=db
+ export MYSQL_ROOT_PASSWORD=root
+ MYSQL_ROOT_PASSWORD=root
+ export MYSQL_USER=user
+ MYSQL_USER=user
+ export MYSQL_PASSWORD=user
+ MYSQL_PASSWORD=user
+ export MYSQL_DATABASE=default
+ MYSQL_DATABASE=default
+ [[ debug == \@* ]]
+ case "$1" in
+ shift
+ [[ is_docker_server_version == \-\c ]]
+ [[ is_docker_server_version == \-\-\l\o\a\d\-\c\o\n\f\i\g\u\r\a\t\i\o\n ]]
+ eval is_docker_server_version
++ is_docker_server_version
++ is_pwd
+++ cat /etc/motd
++ [[ '' =~ The PWD team ]]
++ is_katacoda
++ [[ '' != '' ]]
++ is_linux
++ [[ Linux == \L\i\n\u\x ]]
++ which docker
+++ docker version --format '{{.Server.Version}}'
+++ tr -d '\r'
++ local version=19.03.8-ce
+++ ver_to_int 19.03.4
+++ echo 19.03.4
+++ awk -F. '{ printf("%d%03d%03d", $1,$2,$3); }'
+++ ver_to_int 19.03.8-ce
+++ echo 19.03.8-ce
+++ awk -F. '{ printf("%d%03d%03d", $1,$2,$3); }'
++ ((  19003004 <= 19003008  ))

Output of fin config:

fin config output
ALERT:  Some Docksal services were not running
         Restarting Docksal system services...
Configuring network settings...
Resetting Docksal system services...
 * proxy
 * dns
   upstream 10.0.2.3
Enabling automatic *.docksal DNS resolver...
 * ssh-agent
Identity added: id_rsa (rogi@test)
---------------------
COMPOSE_PROJECT_NAME_SAFE: test
COMPOSE_FILE:
/home/rogi/.docksal/stacks/volumes-bind.yml
/home/rogi/.docksal/stacks/stack-default.yml
/home/rogi/test/.docksal/docksal.yml
ENV_FILE:
/home/rogi/test/.docksal/docksal.env

PROJECT_ROOT: /home/rogi/test
DOCROOT: docroot
VIRTUAL_HOST: test.docksal
VIRTUAL_HOST_ALIASES: *.test.docksal
IP: 192.168.64.100
MYSQL:

Docker Compose configuration
---------------------
services:
  cli:
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      BLACKFIRE_CLIENT_ID: null
      BLACKFIRE_CLIENT_TOKEN: null
      COMPOSER_ALLOW_XDEBUG: '0'
      COMPOSER_DISABLE_XDEBUG_WARN: '0'
      DOCROOT: docroot
      DRUSH_ALLOW_XDEBUG: '0'
      DRUSH_OPTIONS_URI: test.docksal
      GIT_USER_EMAIL: ''
      GIT_USER_NAME: ''
      HOST_GID: '1001'
      HOST_UID: '1000'
      MYSQL_DATABASE: default
      MYSQL_HOST: db
      MYSQL_PASSWORD: user
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: user
      PHP_IDE_CONFIG: null
      SECRET_ACAPI_EMAIL: null
      SECRET_ACAPI_KEY: null
      SECRET_PLATFORMSH_CLI_TOKEN: null
      SECRET_SSH_PRIVATE_KEY: null
      SECRET_TERMINUS_TOKEN: null
      SSH_AUTH_SOCK: /.ssh-agent/proxy-socket
      VIRTUAL_HOST: test.docksal
      XDEBUG_CONFIG: remote_connect_back=0 remote_host=192.168.64.1
      XDEBUG_ENABLED: '0'
    hostname: cli
    image: docksal/cli:2.10-php7.3
    labels:
      io.docksal.shell: bash
      io.docksal.user: docker
    volumes:
    - docksal_ssh_agent:/.ssh-agent:ro
    - cli_home:/home/docker:rw
    - project_root:/var/www:rw,nocopy,cached
  db:
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: null
      MYSQL_DATABASE: default
      MYSQL_INITDB_SKIP_TZINFO: null
      MYSQL_ONETIME_PASSWORD: null
      MYSQL_PASSWORD: user
      MYSQL_RANDOM_ROOT_PASSWORD: null
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: user
    hostname: db
    image: docksal/mysql:5.6-1.4
    ports:
    - 3306/tcp
    volumes:
    - db_data:/var/lib/mysql:rw
    - project_root:/var/www:ro,nocopy,cached
  web:
    depends_on:
      cli:
        condition: service_started
    dns:
    - 192.168.64.100
    - 8.8.8.8
    environment:
      APACHE_BASIC_AUTH_PASS: null
      APACHE_BASIC_AUTH_USER: null
      APACHE_DOCUMENTROOT: /var/www/docroot
      APACHE_FCGI_HOST_PORT: cli:9000
    hostname: web
    image: docksal/apache:2.4-2.3
    labels:
      io.docksal.cert-name: none
      io.docksal.permanent: "false"
      io.docksal.project-root: /home/rogi/test
      io.docksal.virtual-host: test.docksal,*.test.docksal,test.docksal.*
    volumes:
    - project_root:/var/www:ro,nocopy,cached
version: '2.1'
volumes:
  cli_home: {}
  db_data: {}
  docksal_ssh_agent:
    external: true
    name: docksal_ssh_agent
  project_root:
    driver: local
    driver_opts:
      device: /home/rogi/test
      o: bind
      type: none

---------------------

Output of fin sysinfo:

fin sysinfo output
$ fin sysinfo
███  OS
Linux Manjaro Linux 
Linux test 5.6.8-1-MANJARO #1 SMP PREEMPT Wed Apr 29 19:05:17 UTC 2020 x86_64 GNU/Linux

███  ENVIRONMENT
MODE : Linux Kernel
DOCKER_HOST : 

███  FIN
fin version: 1.93.0

███  DOCKER COMPOSE
EXPECTED VERSION: 1.24.1
docker-compose version 1.25.5, build unknown
docker-py version: 4.2.0
CPython version: 3.8.2
OpenSSL version: OpenSSL 1.1.1g  21 Apr 2020

███  DOCKER
EXPECTED VERSION: 19.03.4

Client:
Version:           19.03.8-ce
API version:       1.40
Go version:        go1.14.1
Git commit:        afacb8b7f0
Built:             Thu Apr  2 00:04:36 2020
OS/Arch:           linux/amd64
Experimental:      false

Server:
Engine:
Version:          19.03.8-ce
API version:      1.40 (minimum version 1.12)
Go version:       go1.14.1
Git commit:       afacb8b7f0
Built:            Thu Apr  2 00:04:16 2020
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          v1.3.4.m
GitCommit:        d76c121f76a5fc8a462dc64594aea72fe18e1178.m
runc:
Version:          1.0.0-rc10
GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version:          0.18.0
GitCommit:        fec3683

███  DOCKSAL: PROJECTS
project             STATUS              virtual host        project root

███  DOCKSAL: VIRTUAL HOSTS
No virtual hosts found

███  DOCKSAL: DNS
Successfully requested http://dns-test.docksal

███  DOCKER: RUNNING CONTAINERS
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                   PORTS                                                    NAMES
55fab4dee0a7        docksal/ssh-agent:1.3     "docker-entrypoint.s…"   4 minutes ago       Up 4 minutes (healthy)                                                            docksal-ssh-agent
5d60ca659cdf        docksal/dns:1.1           "docker-entrypoint.s…"   4 minutes ago       Up 4 minutes (healthy)   192.168.64.100:53->53/udp                                docksal-dns
c372e941d6b2        docksal/vhost-proxy:1.5   "docker-entrypoint.s…"   4 minutes ago       Up 4 minutes (healthy)   192.168.64.100:80->80/tcp, 192.168.64.100:443->443/tcp   docksal-vhost-proxy

███  DOCKER: NETWORKS
NETWORK ID          NAME                DRIVER              SCOPE
4414e768e9fd        _default            bridge              local
2b6f329f65ea        bridge              bridge              local
a9a84a4aa734        host                host                local
cbd0fb80c45f        none                null                local
7a4b391c0711        test_default        bridge              local

███  HDD Usage
df: /run/user/1000/doc: Operation not permitted
Filesystem      Size  Used Avail Use% Mounted on
dev             1,9G     0  1,9G   0% /dev
run             1,9G  1,3M  1,9G   1% /run
/dev/sda1        20G   11G  8,4G  56% /
tmpfs           1,9G     0  1,9G   0% /dev/shm
tmpfs           1,9G     0  1,9G   0% /sys/fs/cgroup
tmpfs           1,9G   47M  1,9G   3% /tmp
tmpfs           389M   12K  389M   1% /run/user/1000

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 16 (8 by maintainers)

Most upvoted comments

Hmmm, I can’t say it’s impossible that I made that mistake… I will definitely check that out.

Thanks for your help guys!