haiwen / seafile-docker

A Docker image for Seafile server
Other
544 stars 183 forks source link

7.3.1 fails with SEAFILE_SERVER_LETSENCRYPT=true #214

Closed r3361 closed 4 years ago

r3361 commented 4 years ago

Tried to update from tag latest to 7.3.1.

docker-compose.yaml

version: '2.0'
services:
  db:
    image: mariadb:10.1
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=************
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql
    networks:
      - seafile-net

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 512
    networks:
      - seafile-net

  seafile:
    image: seafileltd/seafile-mc:7.1.3
    container_name: seafile
    ports:
      - "80:80"
      - "443:443"  # If https is enabled, cancel the comment.
      - "8080:8080"
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=**************  # Requested, the value shuold be root's password of MySQL service.
      - TIME_ZONE=Etc/UTC  # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=************** # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=**************     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=true
      - SEAFILE_SERVER_HOSTNAME=seafile.domain.tld # Specifies your host name if https is enabled.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

If I try to start this docker-compose, I get the following error and a force quit of the seafile container:

*** Running /etc/my_init.d/01_create_data_links.sh...
*** Booting runit daemon...
*** Runit started as PID 23
*** Running /scripts/start.py...
[2020-04-23 06:32:21] Preparing for letsencrypt ...
Traceback (most recent call last):
  File "/scripts/start.py", line 86, in <module>
    main()
  File "/scripts/start.py", line 51, in main
    init_letsencrypt()
  File "/scripts/bootstrap.py", line 32, in init_letsencrypt
    wait_for_nginx()
  File "/scripts/utils/__init__.py", line 288, in wait_for_nginx
    if ':80 ' in output:
TypeError: a bytes-like object is required, not 'str'
*** /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...

If remove - SEAFILE_SERVER_LETSENCRYPT=true from docker-compose.yaml, the container will start with no issue. But only with http.

PachVerb commented 4 years ago

尝试从最新标签更新到7.3.1。

docker-compose.yaml

version: '2.0'
services:
  db:
    image: mariadb:10.1
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=************
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql
    networks:
      - seafile-net

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 512
    networks:
      - seafile-net

  seafile:
    image: seafileltd/seafile-mc:7.1.3
    container_name: seafile
    ports:
      - "80:80"
      - "443:443"  # If https is enabled, cancel the comment.
      - "8080:8080"
    volumes:
      - /opt/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=**************  # Requested, the value shuold be root's password of MySQL service.
      - TIME_ZONE=Etc/UTC  # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=************** # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=**************     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=true
      - SEAFILE_SERVER_HOSTNAME=seafile.domain.tld # Specifies your host name if https is enabled.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

如果尝试启动此docker-compose,则会收到以下错误,并强制退出seafile容器:

*** Running /etc/my_init.d/01_create_data_links.sh...
*** Booting runit daemon...
*** Runit started as PID 23
*** Running /scripts/start.py...
[2020-04-23 06:32:21] Preparing for letsencrypt ...
Traceback (most recent call last):
  File "/scripts/start.py", line 86, in <module>
    main()
  File "/scripts/start.py", line 51, in main
    init_letsencrypt()
  File "/scripts/bootstrap.py", line 32, in init_letsencrypt
    wait_for_nginx()
  File "/scripts/utils/__init__.py", line 288, in wait_for_nginx
    if ':80 ' in output:
TypeError: a bytes-like object is required, not 'str'
*** /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...

如果- SEAFILE_SERVER_LETSENCRYPT=true从docker-compose.yaml中删除,则容器将毫无问题地启动。但是只能用http。

Maybe you can find the answer here https://download.seafile.com/published/seafile-manual/docker/pro-edition/Deploy%20Seafile-pro%20with%20Docker.md

nxadm commented 4 years ago

I have exactly the same config and exactly the same error when I moved to Ubuntu 18.04 to 20.04.

nxadm commented 4 years ago

I can add that rolling back to seafileltd/seafile-mc:7.0.5 in the docker-compose file fixes the issue for me. seafile-mc:latest (7.1.3) looks broken, maybe a python 2=>3 issue?

bhendrik commented 4 years ago

Same issue here, any solution? Reverting to seafileltd/seafile-mc:7.0.5 fixes the issue.

freeplant commented 4 years ago

It has been fixed now. You can download a new version of 7.1.3.

nxadm commented 4 years ago

I can confirm that it works. Thanks for your work!

bhendrik commented 4 years ago

I can confirm it worked, did have to delete the local image before it updated