Trying to migrate my install of Seafile server 12.0.14 into docker
(docker is there and already running acouple of other containers)
first (of a few) hurdles i’ve struck is a permissions error - can’t seem to get the container to run.
I have installed the docker container and modified the .env file based on here
I have restored the databases based on here
I think I have mounted the seafile-data folder correctly (via a mnt in fstab), I can see files in the mounted folder ok
Based on this thread…
I have modifed the seafile-server.yml and added a map which looks like this
volumes:
- ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
- /mnt/SFData/:/shared/seafile/seafile-data
environment:
However, Bringing the container up seems to be ok, but logs show problems on startup
bunny@bunny-pc:/opt/seafile$ docker compose up -d
[+] up 5/5
✔ Container seafile-memcached Running 0.0s
✔ Container seafile-mysql Healthy 0.5s
✔ Container seafile-caddy Running 0.0s
✔ Container seadoc Running 0.0s
✔ Container seafile Running
bunny@bunny-pc:/opt/seafile$ docker logs seafile -f
*** Running /etc/my_init.d/01_create_data_links.sh...
*** Booting runit daemon...
*** Runit started as PID 21
*** Running /scripts/enterpoint.sh...
2026-02-12 16:35:55 Waiting Nginx
2026-02-12 16:35:55 Nginx ready
2026-02-12 16:35:55 This is an idle script (infinite loop) to keep container running.
[2026-02-12 16:35:56] Skip running setup-seafile-mysql.py because there is existing seafile-data folder.
[02/12/2026 16:35:56][upgrade]: The container was recreated, start fix the media symlinks
mv: not replacing '/shared/seafile/seahub-data/avatars/default-non-register.jpg'
mv: not replacing '/shared/seafile/seahub-data/avatars/default.png'
mv: not replacing '/shared/seafile/seahub-data/avatars/groups'
[02/12/2026 16:35:56][upgrade]: Done
Error: the user running the script ("root") is not the owner of "/shared/seafile/seafile-data" folder, you should use the user "ubuntu" to run the script.
Traceback (most recent call last):
File "/scripts/start.py", line 94, in <module>
main()
File "/scripts/start.py", line 79, in main
call('{} start'.format(get_script('seafile.sh')))
File "/scripts/utils.py", line 70, in call
return subprocess.check_call(*a, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '/opt/seafile/seafile-server-12.0.14/seafile.sh start' returned non-zero exit status 255.
Main questions are
- Doesn’t look like Seahub is even getting started, how to deal with this root/owner problem on startup?
- The /opt/seafile-data/seafile folder is mostly red Xs except for logs/seahub-data - seafile-data folder can’t be accessed, except via sudo terminal. There is data in it so do I just delete all this and mount my /mnt/SFData folder in its place?
This post suggests mounting my data folder over top of the existing folder, I assume by modifying the fstab file
Reddit - The heart of the internet - On the setup page for CE it says “From Seafile Docker 12.0, we use the Caddy to do web service proxy.”
I have a apache webserver vhost running that acts as the proxy - using proxypass/reverse etc, is caddy still needed in this instance? - Are there any other configurations/files I might need to update the new installation with from the old installation, or is it all in the main data folder /opt/seafile-data/seafile/seafile-data folder now? and this will all work properly when SFData is mounted correctly?
Sorry for the long rambling post…



