getumbrel / umbrel

A beautiful home server OS for self-hosting with an app store. Buy a pre-built Umbrel Home with umbrelOS, or install on a Raspberry Pi or any x86 system.
https://umbrel.com
Other
7.22k stars 523 forks source link

Ubuntu 22.04.04 LTS installation issue 'ssl_version' - Cant start Docker services #1746

Closed semaf closed 5 months ago

semaf commented 6 months ago

Hey,

I am getting the issue on a fresh installed Ubuntu (min). Latest docker and docker compose is installed. Same issue happens also if docker and docker compose is purged and command curl -L https://umbrel.sh | bash

semaf@umbrelos:~$ curl -L https://umbrel.sh | bash -s -- --no-install-docker --no-install-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    41  100    41    0     0     32      0  0:00:01  0:00:01 --:--:--    32
100  8090  100  8090    0     0   5347      0  0:00:01  0:00:01 --:--:--  136k
About to install Umbrel in "/home/semaf/umbrel".
If you would like to install somewhere else you can specify a custom location with:

  curl -L https://umbrel.sh | bash -s -- --install-path /some/path

Waiting for 10 seconds...

You may press Ctrl+C now to abort the install.

Hit:1 http://at.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://at.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://at.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 https://download.docker.com/linux/ubuntu jammy InRelease
Hit:5 http://security.ubuntu.com/ubuntu jammy-security InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
gettext-base is already the newest version (0.21-4ubuntu4).
jq is already the newest version (1.6-2.1ubuntu3).
fswatch is already the newest version (1.14.0+repack-13.1).
curl is already the newest version (7.81.0-1ubuntu1.15).
git is already the newest version (1:2.34.1-1ubuntu1.10).
gnupg is already the newest version (2.2.27-3ubuntu2.1).
python3 is already the newest version (3.10.6-1~22.04).
rsync is already the newest version (3.2.7-0ubuntu0.22.04.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libnss-mdns is already the newest version (0.15.1-1ubuntu1).
avahi-daemon is already the newest version (0.8-5ubuntu5.2).
avahi-discover is already the newest version (0.8-5ubuntu5.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 9922k  100 9922k    0     0  3649k      0  0:00:02  0:00:02 --:--:-- 4665k
yq installed successfully...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 12.6M  100 12.6M    0     0  4382k      0  0:00:02  0:00:02 --:--:-- 5199k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 34.9M  100 34.9M    0     0   9.9M      0  0:00:03  0:00:03 --:--:-- 11.5M

[Unit]
Wants=network-online.target
After=network-online.target
Wants=docker.service
After=docker.service

# This prevents us hitting restart rate limits and ensures we keep restarting
# indefinitely.
StartLimitInterval=0

[Service]
Type=forking
TimeoutStartSec=infinity
TimeoutStopSec=16min
ExecStart=/home/semaf/umbrel/scripts/start
ExecStop=/home/semaf/umbrel/scripts/stop
User=root
Group=root
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=umbrel startup
RemainAfterExit=yes
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
Skipping status update when not on Umbrel OS

======================================
============ CONFIGURING =============
=============== UMBREL ===============
======================================

Generating auth credentials

Generating Tor password

Configuring permissions...

Configuration successful
You can now start Umbrel by running:
  sudo ./scripts/start

======================================
============= STARTING ===============
============== UMBREL ================
======================================

Setting environment variables...

Starting karen...

Starting status monitors...
Starting memory monitor...

Starting backup monitor...

Starting decoy backup trigger...

Starting umbreld...

Starting Docker services...

Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/main.py", line 200, in perform_command
    project = project_from_options('.', options)
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/command.py", line 60, in project_from_options
    return get_project(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/command.py", line 152, in get_project
    client = get_client(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/docker_client.py", line 41, in get_client
    client = docker_client(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/docker_client.py", line 124, in docker_client
    kwargs = kwargs_from_env(environment=environment, ssl_version=tls_version)
TypeError: kwargs_from_env() got an unexpected keyword argument 'ssl_version'
Failed to start containers
Skipping status update when not on Umbrel OS

Running the command sudo ./scripts/start in the folder has the same issue.

jarsever commented 6 months ago

Same issue here. It worked this morning but I needed to update my OS disk. After I ran the script on a fresh install (after the 1.0 release) the installation failed with that error. Something to do with docker v1 vs v2 potentially?

semaf commented 6 months ago

Same issue here. It worked this morning but I needed to update my OS disk. After I ran the script on a fresh install (after the 1.0 release) the installation failed with that error. Something to do with docker v1 vs v2 potentially?

I guess it has to do with docker compose v1. Installed now on debian v12 and it was still asking to install docker compose v1

jarsever commented 6 months ago

Same issue here. It worked this morning but I needed to update my OS disk. After I ran the script on a fresh install (after the 1.0 release) the installation failed with that error. Something to do with docker v1 vs v2 potentially?

I guess it has to do with docker compose v1. Installed now on debian v12 and it was still asking to install docker compose v1

So, I found a work around I think. Edit the ./umbrel/scripts/start and edit line 150. Remove the - in the compose command:

     echo
     echo "Starting Docker services..."
     echo
-->  docker compose "${compose_files[@]}" up --detach --build --remove-orphans || {
       echo "Failed to start containers"
       $set_status umbrel errored docker-failed
       exit 1
     }
   echo

Edit ./umbrel/scripts/stop on line 66 (the last line) and remove the hyphen also:

    echo "Stopping Docker services..."
    echo
--> docker compose "${compose_files[@]}" down
jarsever commented 6 months ago

Looks like you also need to edit all instances in scripts to use docker compose instead of docker-compose. I found instances in app, debug, rpcauth.py, install, start, stop scripts.

jarsever commented 6 months ago

Another note… docker compose v2 also requires container service names to use dashes instead of underscores. If an app is not installing then you will need to go into the repo folder for that app and make sure any host reference and docker image name is converted to dashes. If not then it will have dns issues and not be able to connect to the proper service. An example is the nginx service of the public-pool repo.

SuperAviation001 commented 6 months ago

to install do ‘curl -L https://github.com/getumbrel/umbrel/archive/0.5.4.tar.gz | tar -xz --strip-components=1’ without the ‘ at the start and end, then do sudo ./scripts/start which works fine for me. If it doesn’t work try install docker compose with pip: pip install docker-compose

exitus1 commented 6 months ago

to install do ‘curl -L https://github.com/getumbrel/umbrel/archive/0.5.4.tar.gz | tar -xz --strip-components=1’ without the ‘ at the start and end, then do sudo ./scripts/start which works fine for me. If it doesn’t work try install docker compose with pip: pip install docker-compose

I tried both of these commands and i'm still getting failed to start containers.

mayankchhabra commented 5 months ago

Sorry for the issue folks. It's now been fixed by #1780.