Seafile 7.1.7 (Pro) failes after Upgrade from 7.0.13

Hey there,

i cannot upgrade my seafile pro docker install from 7.0.13 to 7.1.7. I use docker compose and it runs fine with 7.0.13 since the day of the old release. However i am not able to upgrade to any 7.1.x release.

This are the actual logs directly after booting up the container:

** Message: 21:55:48.750: seafile-controller.c(1009): loading seafdav config from /opt/seafile/conf/seafdav.conf,
,
Seafile server started,
,
Done.,
,
Starting seahub at port 8000 ...,
Error:Seahub failed to start.,
Please try to run "./seahub.sh start" again,
[2020-10-10 21:55:48] Preparing for letsencrypt ...,
[2020-10-10 21:55:48] Found existing cert file /shared/ssl/sslcert.com.crt,
[2020-10-10 21:55:48] Skip letsencrypt verification since we have a valid certificate,
[2020-10-10 21:55:48] Skip running setup-seafile-mysql.py because there is existing seafile-data folder.,
Traceback (most recent call last):,
  File "/scripts/start.py", line 86, in <module>,
    main(),
  File "/scripts/start.py", line 72, in main,
    call('{} start'.format(get_script('seahub.sh'))),
  File "/scripts/utils/__init__.py", line 70, in call,
    return subprocess.check_call(*a, **kw),
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call,
    raise CalledProcessError(retcode, cmd),
subprocess.CalledProcessError: Command '/opt/seafile/seafile-pro-server-7.1.7/seahub.sh start' returned non-zero exit status 1.,
*** /scripts/start.py exited with status 1.,
*** Shutting down runit daemon (PID 23)...,
*** Running /etc/my_init.post_shutdown.d/10_syslog-ng.shutdown...,
*** Killing all processes...,
*** Running /etc/my_init.d/01_create_data_links.sh...,
rm: cannot remove '/var/log/nginx': Device or resource busy,
*** Booting runit daemon...,
*** Runit started as PID 23,
*** Running /scripts/start.py...,
Certificate will not expire,
Found existing the script for renew the cert.,
Skip create the crontab for letscncrypt since maybe we have created before.,
[10/10/2020 21:56:24][upgrade]: The container was recreated, running minor-upgrade.sh to fix the media symlinks,
[10/10/2020 21:56:24][upgrade]: Running script /opt/seafile/seafile-pro-server-7.1.7/upgrade/minor-upgrade.sh,
,
-------------------------------------------------------------,
This script would do the minor upgrade for you.,
Press [ENTER] to contiune,
-------------------------------------------------------------,
,
,
renaming the gunicorn.conf to gunicorn.conf.py ...,
,
Done,
,
------------------------------,
migrating avatars ...,
,
,
DONE,
------------------------------,
,
,
Moving the elasticsearch's configuration file ...,
,
/bin/cp: '/opt/seafile/seafile-server-latest/pro/elasticsearch/config/jvm.options' and '/opt/seafile/seafile-pro-server-7.1.7/pro/elasticsearch/config/jvm.options' are the same file,
,
updating seafile-server-latest symbolic link to /opt/seafile/seafile-pro-server-7.1.7 ...,
,
DONE,
------------------------------,
,
,
** Message: 21:56:24.547: seafile-controller.c(1009): loading seafdav config from /opt/seafile/conf/seafdav.conf,
,
[10/10/20 21:56:24] ../common/session.c(156): using config file /opt/seafile/conf/ccnet.conf,
[10/10/20 21:56:24] ../common/license.c(427): Loading license file /opt/seafile/seafile-license.txt ..,
[10/10/20 21:56:24] ../common/license.c(430): License file /opt/seafile/seafile-license.txt does not exist, allow at most 3 trial users,
License file /opt/seafile/seafile-license.txt does not exist, allow at most 3 trial users,
Starting seafile server, please wait ...,
** Message: 21:56:24.577: seafile-controller.c(1009): loading seafdav config from /opt/seafile/conf/seafdav.conf,
,
Seafile server started,
,
Done.,
,
Starting seahub at port 8000 ...,
Error:Seahub failed to start.,
Please try to run "./seahub.sh start" again,
[2020-10-10 21:56:24] Preparing for letsencrypt ...,
[2020-10-10 21:56:24] Found existing cert file /shared/ssl/sslcert.com.crt.crt,
[2020-10-10 21:56:24] Skip letsencrypt verification since we have a valid certificate,
[2020-10-10 21:56:24] Skip running setup-seafile-mysql.py because there is existing seafile-data folder.,
Traceback (most recent call last):,
  File "/scripts/start.py", line 86, in <module>,
    main(),
  File "/scripts/start.py", line 72, in main,
    call('{} start'.format(get_script('seahub.sh'))),
  File "/scripts/utils/__init__.py", line 70, in call,
    return subprocess.check_call(*a, **kw),
  File "/usr/lib/python3.6/subprocess.py", line 311, in check_call,
    raise CalledProcessError(retcode, cmd),
subprocess.CalledProcessError: Command '/opt/seafile/seafile-pro-server-7.1.7/seahub.sh start' returned non-zero exit status 1.,
*** /scripts/start.py exited with status 1.,
*** Shutting down runit daemon (PID 23)...,
*** Running /etc/my_init.post_shutdown.d/10_syslog-ng.shutdown...,
*** Killing all processes...,

and from there its a reboot loop all the time.

This is the docker compose file:

version: '2'
services:
  db:
    image: mariadb:10.1
    container_name: seafile-mysql
    ports:
    - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=xxxx  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile/db:/var/lib/mysql
      - /opt/seafile/dblogs:/var/log
      - /xxxx/seafile_data:/shared
    networks:
      - seafile-net
    restart: unless-stopped
    
  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
    restart: unless-stopped
    
  elasticsearch:
    image: seafileltd/elasticsearch-with-ik:5.6.16
    container_name: seafile-elasticsearch
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 2g
    volumes:
      #- /opt/seafile-elasticsearch/data:/usr/share/elasticsearch/data  # Requested, specifies the path to Elasticsearch data persistent store.
      - /xxxx/seafile_data/elasticsearch/data:/usr/share/elasticsearch/data  # Requested, specifies the path to Elasticsearch data persistent store.
      - /opt/seafile/logs:/opt/seafile/logs
      #- /opt/seafile/logs:/shared/seafile/logs
      - /opt/seafile/logs_var:/var/log
    networks:
      - seafile-net
    restart: unless-stopped
    
  seafile:
    #image: docker.seadrive.org/seafileltd/seafile-pro-mc:7.0.13
    image: docker.seadrive.org/seafileltd/seafile-pro-mc:latest
    container_name: seafile
    ports:
     - "80:80"
     - "443:443"  # If https is enabled, cancel the comment.
     - "8081:8080"
     - "8082:8000"
     - "8083:8082"
    restart: unless-stopped     
    volumes:
      - /xxxx/seafile_data:/shared   # Requested, specifies the path to Seafile data persistent store.
      - /opt/seafile/logs_var:/var/log
      - /opt/seafile/logs_var/nginx:/var/log/nginx
      - /opt/seafile/logs:/shared/seafile/logs

    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=xxxx

      - TZ=Europe/Vienna
      - SEAFILE_SERVER_LETSENCRYPT=true
      - SEAFILE_SERVER_HOSTNAME=xxx.com
      - SEAFILE_ADMIN_EMAIL=xxx@ccc.com
      - SEAFILE_ADMIN_PASSWORD=xxx  
      - VIRTUAL_HOST=xxx 
      - LETSENCRYPT_HOST=xxx
      - LETSENCRYPT_EMAIL=xxxx
    depends_on:
      - db
      - memcached
      - elasticsearch
    networks:
      - seafile-net

networks:
  seafile-net:

This issue is already pretty annoying because i have to stay on 7.0.13 for the foreseeable future.

Hope anyone can help me!
With best regards and thanks in advance
satheras

Have you tried to upgrade to latest 7.0.x (7.0.19), and then to 7.1.7?

@jocke Thank you for that idea. but here isn`t unfortunately any higher version than 7.0.13 on the “Pro” path.

Error response from daemon: manifest for docker.seadrive.org/seafileltd/seafile-pro-mc:7.0.14 not found: manifest unknown: manifest unknown
with any try up to 7.0.19

is there any other suggestion?

Disclaimer: I am no developer or experienced Docker admin.

I checked your docker compose and read a bit on the meaning of this error message:

It seems to me that this is nothing you can solve.