Files
alpine-packages/README.md
2026-06-07 14:30:21 +02:00

3.1 KiB

SeaweedFS Alpine package base

This repository is set up to build a local SeaweedFS Alpine package with mise while keeping all Alpine tooling inside Docker.

Tasks

mise run apk:build
mise run apk:build-all
mise run apk:build-x86_64
mise run apk:build-aarch64
mise run apk:checksum
mise run apk:lint
mise run apk:packages
mise run apk:smoke
mise run apk:publish-check
mise run apk:shell
mise run apk:clean

mise also declares the Docker CLI as a project tool dependency, so the package workflow has a single command surface.

Tool stub

The SeaweedFS release binary is also available as a mise HTTP tool stub:

./bin/weed version

The stub is pinned to SeaweedFS 4.31 and includes Linux x64 and arm64 release URLs with SHA-256 checksums.

The default build targets x86_64. Multi-arch builds currently target x86_64 and Alpine's aarch64; override this with ALPINE_ARCHES, for example:

ALPINE_ARCHES="x86_64 aarch64" mise run apk:build-all

Generated packages and repository indexes are written under packages/, typically:

packages/local/x86_64/
packages/local/aarch64/

Because this package repackages upstream release binaries, all targets are built from the native Docker builder platform by default (ALPINE_BUILD_PLATFORM=linux/amd64). No QEMU/binfmt setup is required.

The signing key and distfiles cache are kept in .cache/abuild/ and .cache/apk-distfiles/ so repeated builds use the same local repository key.

Local repository

To test the package in an Alpine container:

mise run apk:smoke

Before publishing or handing the local repository to another system, run:

mise run apk:publish-check

That runs APKBUILD linting, rebuilds all configured architectures, lists the generated package metadata, and performs the install smoke test.

To install OpenRC service scripts as well:

apk add seaweedfs seaweedfs-master-openrc

The OpenRC subpackages are:

seaweedfs-master-openrc   -> seaweedfs.master
seaweedfs-volume-openrc   -> seaweedfs.volume
seaweedfs-filer-openrc    -> seaweedfs.filer
seaweedfs-s3-openrc       -> seaweedfs.s3
seaweedfs-webdav-openrc   -> seaweedfs.webdav
seaweedfs-sftp-openrc     -> seaweedfs.sftp
seaweedfs-admin-openrc    -> seaweedfs.admin
seaweedfs-worker-openrc   -> seaweedfs.worker

Each service has matching defaults in /etc/conf.d/seaweedfs.*. Remote targets use distinct variables such as SEAWEEDFS_MASTER, SEAWEEDFS_FILER, and SEAWEEDFS_ADMIN; SEAWEEDFS_OPTS remains available for additional flags. Enable only the roles needed for a node, for example:

rc-update add seaweedfs.master default
rc-service seaweedfs.master start

If the repository key is not copied into packages/local/x86_64/, copy the public key from .cache/abuild/*.rsa.pub into /etc/apk/keys/ in the test system before running apk update.

Package inputs

The package lives in packaging/alpine/local/seaweedfs/APKBUILD. It repackages SeaweedFS 4.31 release binaries from GitHub and installs the weed binary. Generated scaffold configs are installed under /etc/seaweedfs/.