Seafile 10.0.4 new docker deployment issues

Have set up seafile docker according to /docker/pro-edition/deploy_seafile_pro_with_docker/

I have found a few issues that require manual intervention to get seafile to work.
Here is the process I am using.

  1. docker-compose up -d
  2. Despite 443 being unhashed in docker-compose there is issues getting the acme challenge to work so I need to modify the nginx config to include “location ~/.well-known/acme-challenge/ {
    root /var/www/;
    }”
  3. manually generate ssl is generated by /scripts/ssl.sh /shared/ssl/ domain
  4. add the following lines to the nginx config"
    listen 443 ssl;
    ssl_certificate /shared/ssl/domain/fullchain.cer
    ssl_certificate_key /shared/ssl/domain/domain.key"
  5. then I need to run through the scripts at opt/seafile/seafile-proserver10.0.4/setup-seafile-mysql.sh to create or once initially created connect to existing DB.
  6. Then I need to run seahub.sh and seafile.sh start.

I feel like this latest version has been packaged incorrectly or I am clearly missing something here in order to have to do all these manual steps.
As its on docker, I don’t want to make these changes as they will not persist if I run a docker-compose down.

I know this version is relatively new is anyone else experiencing this issue. I will look at replicating this on a totally new machine although I’ve done a few complete rebuilds and am continuing to get the same result.

I have also noticed that when I run tree directory it does not match what is found in the guide, I assume this is an issue due to the deployment failing at the acme-challenge verification phase

Hello. Im having the same issue. Going to try the install normally, not docker. The ironny, it says docker is the recommended installation method, and does not work. I will contact seafile sales. Is seafile not active anymore?
Regards

Hi,

So an update, I decided to do things diffrently rather than modifying the docker file to allow for easy updates and docker management.
For anyone who would like to use SSL I would reccomend leaving port 80 on seafile installation as it will boot up perfectly, then use cloudflare tunneling to secure it and present it externally via https.

After trying a few methods, HAProxy, Nginx Reverse Proxy, I found this was the simplest and best method for the following reasons.

  • You wont need to open any ports on your router for this
  • It supports CGNAT
  • You wont need a static IP
  • Zero Trust model
  • Free

Thanks for reporting the issue. It was a bug introduced last time we modified the script for building docker image.

It should have been fixed now. And the docker images have been updated.

Thanks Daniel, in the meantime i install everything manual and move all libraries, everything is working perfect. So, should i migrate from this to docker? There is a proper way to do this? Updating the normal installation is easy as docker?
Regards

You can keep using the binary version. But the Docker version is easy to upgrade in the future.

If you like to migrate to Docker version, you can follow this document: Migrate from non-docker deployment - Seafile Admin Manual

Hi,
I also tried to install seafile-pro with docker for the first time (CentOS stream 9), but I failed. The only thing that works is creating the ACME certificates. “docker compose up -d” successfully runs and ends with:

[+] Running 5/5
 ✔ Network seafile_seafile-net      Created                                                                                                                                             0.2s
 ✔ Container seafile-mysql          Started                                                                                                                                             2.3s
 ✔ Container seafile-memcached      Started                                                                                                                                             2.5s
 ✔ Container seafile-elasticsearch  Started                                                                                                                                             2.4s
 ✔ Container seafile                Started                  

“docker container list” shows the four containers. But Seafile is not running. There is no nginx.conf file, the seafile databases are missing and seafile is not running. I don’t know where to look for errors.

Regards,
Dirk

Most likely, the seafile container exited because of a configuration issue.
To see the running containers you should run docker ps.

To see why your container exited, run docker logs seafile (if you don’t undestand the output, post it here).

Hi Tschoesi,
the seafile container is running, but seafile inside the container is not running. nginx is running and port 443 is open, but the nginx.conf is missing. mariadb is running, but there are no seafile databases.

What do you get when you run docker logs seafile? It should tell you why seafile exited.

I think the problem is the “DB_HOST=db” statement in docker-compose.yml. The IP address is dynamically created during startup and seafile can’t connect to the db-server.

waiting for mysql server to be ready: %s (2003, "Can't connect to MySQL server on 'db' ([Errno 113] No route to host)")

The problem seems to be my docker subnet. We cannot use the default 172.x, because this is a subnet at our university. So I defined 10.10.0.0/16 as the subnet used by docker. I stopped the firewalld on the docker host, ran “docker compose up -d”, and now the script logs the message:
waiting for mysql server to be ready: %s (1045, "Access denied for user 'root'@'10.10.2.4' (using password: YES)")
Are there any docker experts who know what to do if docker runs in a different subnet?

Don’t ask me why, but finally my seafile docker installation works. I de-installed docker and re-installed podman. “podman-compose up -d” works, but only without ssl. The letsencrypt certificate verification always fails with a timeout error. But now I have a running server with pro 10.0.6.