From e1667dde219fa2eaee36c99780bdeb525fc858c9 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 28 Mar 2026 20:57:48 -0700 Subject: [PATCH] docker containers change to user seaweed --- Getting-Started.md | 4 +++- SeaweedFS-in-Docker-Swarm.md | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Getting-Started.md b/Getting-Started.md index 8cfc91c..123fe90 100644 --- a/Getting-Started.md +++ b/Getting-Started.md @@ -185,6 +185,8 @@ Alternatively, you can mount a directory on the host machine into the container: docker run --name weed -d -p 9333:9333 -p 8080:8080 -p 18080:18080 \ -v /opt/weedfs/data:/data chrislusf/seaweedfs server -dir="/data" ``` +The Docker image now defaults to the non-root `seaweed` user. If you bind-mount a host directory, make sure it is writable by UID/GID `1000:1000`, or start the container with `--user root` on first run so the entrypoint can repair `/data` ownership before dropping privileges. + Note that according to [Docker's documentation](https://docs.docker.com/storage/volumes/), volumes are the preferred mechanism for persisting data. @@ -192,4 +194,4 @@ Note that according to [Docker's documentation](https://docs.docker.com/storage/ Now our SeaweedFS server will be persistent and accessible by localhost:9333, :8080 and :18080 on host machine. Dont forget to specify "-publicIp" for correct connectivity. -[Using SeaweedFS in kubernetes(k8s)](https://github.com/seaweedfs/seaweedfs/wiki/Deployment-to-Kubernetes-and-Minikube) \ No newline at end of file +[Using SeaweedFS in kubernetes(k8s)](https://github.com/seaweedfs/seaweedfs/wiki/Deployment-to-Kubernetes-and-Minikube) diff --git a/SeaweedFS-in-Docker-Swarm.md b/SeaweedFS-in-Docker-Swarm.md index a24ac40..8023922 100644 --- a/SeaweedFS-in-Docker-Swarm.md +++ b/SeaweedFS-in-Docker-Swarm.md @@ -26,6 +26,12 @@ mkdir -p /mnt/{cch,cld,seaweedfs} mkdir -p /mnt/seaweedfs/{filer,master,metabackup,volume} ``` +The published Docker image now defaults to the non-root `seaweed` user (UID/GID `1000:1000`). Since this stack bind-mounts host directories and overrides the image entrypoint with custom scripts, make those directories writable by `1000:1000` before deployment. A simple option is: + +``` +chown -R 1000:1000 /mnt/seaweedfs +``` + + On a Swarm master node: ``` @@ -282,4 +288,4 @@ docker run \ mount_proc=$! wait "$mount_proc" -``` \ No newline at end of file +```