seaweedfs/docker
Chris Lu fba71ab14c
ci: parallelize the unified release-container build (#9783)
* docker: cross-compile the Go binary instead of emulating it under QEMU

The builder stage ran as the target platform, so arm64/arm/386 images
emulated the whole Go compile (and the full git clone) under QEMU. The
binary is CGO-free, so pin the builder to $BUILDPLATFORM and cross-compile
with GOOS/GOARCH (GOARM for v7), keeping every target's compile native.

* ci: build all release container variants in parallel

The build matrix throttled to two variants at a time on a stale rate-limit
worry. Pulls go through mirror.gcr.io and pushes target GHCR only, so the
five variants can all build at once.

* ci: copy each variant to Docker Hub from its build job

The separate copy-to-dockerhub job waited on the whole build matrix before
any GHCR -> Docker Hub copy could start. Move the crane copy into the build
job so each variant copies as soon as it is built, overlapping with the
others still compiling. tag-latest and helm-release now depend on build.
2026-06-01 20:34:05 -07:00
..
admin_integration fix: add missing backslash for volume extraArgs in helm chart (#7676) 2025-12-08 23:21:02 -08:00
compose [docker] add make test_keycloak_s3 for local develop and debug (#9719) 2026-05-28 13:39:32 -07:00
nginx docker-compose 2021-01-17 18:33:14 +05:00
prometheus stats master_replica_placement_mismatch 2022-06-10 15:30:40 +05:00
tarantool Tarantool filer store (#6669) 2025-03-29 21:12:06 -07:00
weed-volume-prebuilt perf(docker): pre-build Rust binaries to avoid 5-hour QEMU emulation 2026-04-02 16:57:28 -07:00
Dockerfile.e2e ci(e2e): switch FUSE Mount build to Azure Ubuntu mirror, persist buildx cache 2026-05-05 00:22:59 -07:00
Dockerfile.foundationdb_large go 1.25 2026-03-09 23:10:27 -07:00
Dockerfile.go_build ci: parallelize the unified release-container build (#9783) 2026-06-01 20:34:05 -07:00
Dockerfile.local feat(docker): default CMD to mini -dir=/data for service-container use (#9255) 2026-04-27 21:21:58 -07:00
Dockerfile.rocksdb_dev_env go 1.25 2026-03-09 23:10:27 -07:00
Dockerfile.rocksdb_large feat(docker): default CMD to mini -dir=/data for service-container use (#9255) 2026-04-27 21:21:58 -07:00
Dockerfile.rocksdb_large_local build(docker): upgrade all Alpine packages in final image (#9070) 2026-04-14 02:08:15 -07:00
Dockerfile.s3tests fix s3tests.conf file name 2024-06-24 17:15:16 -07:00
Dockerfile.tarantool.dev_env Tarantool filer store (#6669) 2025-03-29 21:12:06 -07:00
entrypoint_e2e.sh Remove volumePreallocate option from docker containers (#8451) 2026-02-25 22:11:15 -08:00
entrypoint.sh feat(docker): default CMD to mini -dir=/data for service-container use (#9255) 2026-04-27 21:21:58 -07:00
filer_foundationdb.toml filer store: add foundationdb (#7178) 2025-11-19 20:06:57 -08:00
filer_rocksdb.toml add filer.toml for rocksdb to docker image for rocksdb 2022-02-09 00:12:53 -08:00
filer.toml filer: default to leveldb2 2019-06-30 00:44:57 -07:00
get_fdb_checksum.sh filer store: add foundationdb (#7178) 2025-11-19 20:06:57 -08:00
Makefile [docker] add make test_keycloak_s3 for local develop and debug (#9719) 2026-05-28 13:39:32 -07:00
README.md refactor(compose)!: upgrade to v2 closes #3699 (#3705) 2022-10-16 14:02:33 -07:00
seaweedfs-compose.yml fix: add missing backslash for volume extraArgs in helm chart (#7676) 2025-12-08 23:21:02 -08:00
seaweedfs-dev-compose.yml Remove trailing spaces (line 53) in seaweedfs-dev-compose.yml (#8365) 2026-02-18 07:32:07 -08:00
seaweedfs.sql filer.store.mysql: Use utf8mb4 instead of 3 byte UTF8 (#4094) 2023-01-01 05:07:53 -08:00
security.toml.example fix Filer startup failure due to JWT on / path #8149 (#8167) 2026-01-29 21:45:15 -08:00
test.py fix S3 per-user-directory Policy (#6443) 2025-01-17 01:03:17 -08:00

Docker

Compose V2

SeaweedFS now uses the v2 syntax docker compose

If you rely on using Docker Compose as docker-compose (with a hyphen), you can set up Compose V2 to act as a drop-in replacement of the previous docker-compose. Refer to the Installing Compose section for detailed instructions on upgrading.

Confirm your system has docker compose v2 with a version check

$ docker compose version
Docker Compose version v2.10.2

Try it out


wget https://raw.githubusercontent.com/seaweedfs/seaweedfs/master/docker/seaweedfs-compose.yml

docker compose -f seaweedfs-compose.yml -p seaweedfs up

Try latest tip


wget https://raw.githubusercontent.com/seaweedfs/seaweedfs/master/docker/seaweedfs-dev-compose.yml

docker compose -f seaweedfs-dev-compose.yml -p seaweedfs up

Local Development

cd $GOPATH/src/github.com/seaweedfs/seaweedfs/docker
make

S3 cmd

list

s3cmd --no-ssl --host=127.0.0.1:8333 ls s3://

Build and push a multiarch build

Make sure that docker buildx is supported (might be an experimental docker feature)

BUILDER=$(docker buildx create --driver docker-container --use)
docker buildx build --pull --push --platform linux/386,linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 . -t chrislusf/seaweedfs
docker buildx stop $BUILDER

Minio debugging

mc config host add local http://127.0.0.1:9000 some_access_key1 some_secret_key1
mc admin trace --all --verbose local