Compare commits
3
Commits
7ec03eeada
...
a3c4d09e65
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a3c4d09e65 | ||
|
|
dfd92c522b | ||
|
|
2c3107feb4 |
@@ -16,8 +16,6 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- alpine_version: "3.23"
|
||||
alpine_registry_branch: "v3.23"
|
||||
- alpine_version: "3.24"
|
||||
alpine_registry_branch: "v3.24"
|
||||
container:
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
Alpine stable packaging for internal packages.
|
||||
|
||||
```text
|
||||
https://code.factoring.digital/api/packages/public/alpine/v3.23/alpine-packages
|
||||
https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
|
||||
```
|
||||
|
||||
@@ -11,6 +10,8 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
|
||||
|
||||
- [SeaweedFS](packaging/alpine/local/seaweedfs/README.md): `seaweedfs`
|
||||
- [GreptimeDB](packaging/alpine/local/greptimedb/README.md): `greptimedb`
|
||||
- [LavinMQ](packaging/alpine/local/lavinmq/README.md): `lavinmq`
|
||||
- [Gitea](packaging/alpine/local/gitea/README.md): `gitea`
|
||||
|
||||
## Use In Production
|
||||
|
||||
@@ -53,7 +54,9 @@ Currently packaged:
|
||||
|
||||
```text
|
||||
seaweedfs SeaweedFS 4.31 release binary and OpenRC role splits
|
||||
greptimedb GreptimeDB 1.0.2 built from source for x86_64
|
||||
greptimedb GreptimeDB 1.1.2 built from source for x86_64
|
||||
lavinmq LavinMQ 2.9.1 built from source for x86_64
|
||||
gitea Gitea 1.26.4 release binary and OpenRC service
|
||||
```
|
||||
|
||||
Local build output is written under:
|
||||
@@ -111,6 +114,10 @@ ALPINE_PACKAGE=seaweedfs mise run apk:test-install
|
||||
ALPINE_PACKAGE=greptimedb mise run apk:checksum
|
||||
ALPINE_PACKAGE=greptimedb mise run apk:build
|
||||
ALPINE_PACKAGE=greptimedb SKIP_BUILD=1 mise run apk:test-install
|
||||
ALPINE_PACKAGE=lavinmq mise run apk:build
|
||||
ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install
|
||||
ALPINE_PACKAGE=gitea mise run apk:build
|
||||
ALPINE_PACKAGE=gitea SKIP_BUILD=1 mise run apk:test-install
|
||||
```
|
||||
|
||||
Override Docker cache scope:
|
||||
@@ -189,8 +196,8 @@ mise run apk:checksum
|
||||
|
||||
### Gitea Workflow
|
||||
|
||||
`.gitea/workflows/build.yml` builds and publishes `v3.23` and `v3.24`.
|
||||
Pull requests build only.
|
||||
`.gitea/workflows/build.yml` builds and publishes `v3.24`. Pull requests
|
||||
build only.
|
||||
|
||||
Repository variables:
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
||||
package_name="${PACKAGE_NAME:-$(basename "$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)")}"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
|
||||
case "${arch}" in
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# Maintainer: Joachim Schlöffel <me@joachim-schloeffel.com>
|
||||
pkgname=gitea
|
||||
pkgver=1.26.4
|
||||
pkgrel=0
|
||||
pkgdesc="Self-hosted Git service written in Go"
|
||||
url="https://about.gitea.com/"
|
||||
arch="x86_64 aarch64"
|
||||
license="MIT"
|
||||
depends="git git-lfs gnupg"
|
||||
makedepends="tar xz"
|
||||
provides="cmd:gitea=$pkgver-r$pkgrel"
|
||||
install="$pkgname.pre-install"
|
||||
pkgusers="gitea"
|
||||
pkggroups="www-data"
|
||||
subpackages="
|
||||
$pkgname-doc
|
||||
$pkgname-openrc:_openrc:noarch
|
||||
"
|
||||
options="!check !strip !tracedeps"
|
||||
|
||||
case "$CARCH" in
|
||||
x86_64)
|
||||
_archive="$pkgname-$pkgver-linux-amd64.xz"
|
||||
;;
|
||||
aarch64)
|
||||
_archive="$pkgname-$pkgver-linux-arm64.xz"
|
||||
;;
|
||||
esac
|
||||
|
||||
source="
|
||||
$pkgname-$pkgver-linux-amd64.xz::https://github.com/go-gitea/gitea/releases/download/v$pkgver/gitea-$pkgver-linux-amd64.xz
|
||||
$pkgname-$pkgver-linux-arm64.xz::https://github.com/go-gitea/gitea/releases/download/v$pkgver/gitea-$pkgver-linux-arm64.xz
|
||||
$pkgname-src-$pkgver.tar.gz::https://github.com/go-gitea/gitea/releases/download/v$pkgver/gitea-src-$pkgver.tar.gz
|
||||
gitea.ini
|
||||
gitea.initd
|
||||
"
|
||||
builddir="$srcdir/gitea-src-$pkgver"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
xz -dc "$srcdir/$_archive" > "$srcdir"/gitea
|
||||
chmod 0755 "$srcdir"/gitea
|
||||
}
|
||||
|
||||
package() {
|
||||
local _dir
|
||||
for _dir in gitea gitea/git gitea/data gitea/db gitea/custom; do
|
||||
install -d -m 0750 -o gitea -g www-data \
|
||||
"$pkgdir"/var/lib/$_dir
|
||||
done
|
||||
|
||||
install -d -m 0755 -o gitea -g www-data "$pkgdir"/var/log/gitea
|
||||
install -Dm755 "$srcdir"/gitea "$pkgdir"/usr/bin/gitea
|
||||
install -Dm644 -o gitea -g www-data "$srcdir"/gitea.ini \
|
||||
"$pkgdir"/etc/gitea/app.ini
|
||||
chown gitea:www-data "$pkgdir"/etc/gitea
|
||||
|
||||
install -d -m 0755 "$pkgdir"/usr/share/webapps/gitea
|
||||
cp -r "$builddir"/options "$builddir"/public "$builddir"/templates \
|
||||
"$pkgdir"/usr/share/webapps/gitea/
|
||||
install -Dm644 "$builddir"/LICENSE -t "$pkgdir"/usr/share/licenses/gitea/
|
||||
}
|
||||
|
||||
_openrc() {
|
||||
pkgdesc="$pkgdesc (OpenRC service)"
|
||||
depends="$pkgname=$pkgver-r$pkgrel openrc"
|
||||
|
||||
install -Dm755 "$srcdir"/gitea.initd "$subpkgdir"/etc/init.d/gitea
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
fa4d6a388f22f1f20e99a7a73143b5541aacaf2f60f9bf8b47cdb5c9cb192a16b0a1a2f8dd1fe9710817edf6ce5ea6fea4ef4acdb8e363fe9f25c53f6e682962 gitea-1.26.4-linux-amd64.xz
|
||||
f17868d979ca1ec37f7793d6286789a788abc674e06265011938cfa5b6bf6c1c259af2633fbf8d6371221240c4e3987b7f55ba50b893da74b77ce33265464c92 gitea-1.26.4-linux-arm64.xz
|
||||
9298d2d6eaf03d708a869e8fe5b2cbdcede3fc5e3ae640d3f43a27b7c9a3e10b353ae6135bfb634360679b5793a759c9ae9c7531cde331b11ae81c03b4904ddb gitea-src-1.26.4.tar.gz
|
||||
431184faffa8996873d92d7b0d16bc4b1a0178d264cd2928d1f49b13ad3e6470d9ede7a18c12112deeeb38f0647ccc0b012e98bcbd96e7b8496a3dc18f5b1fb7 gitea.ini
|
||||
9474d707df8b049c93ec4642f71195adff699e1e812f315cac4295b3ab29eeb9ba8b83bf3307c50b04e072a4a9dc4c4f84ac490ee22291bd50015009795c1598 gitea.initd
|
||||
"
|
||||
@@ -0,0 +1,38 @@
|
||||
# Gitea Alpine Package
|
||||
|
||||
Repackages upstream Gitea 1.26.4 Linux release binaries for `x86_64` and
|
||||
`aarch64`.
|
||||
|
||||
The package follows Alpine's Gitea runtime layout:
|
||||
|
||||
- `/usr/bin/gitea`
|
||||
- `/etc/gitea/app.ini`
|
||||
- `/var/lib/gitea`
|
||||
- `/var/log/gitea`
|
||||
- `/usr/share/webapps/gitea`
|
||||
|
||||
Install the OpenRC service with:
|
||||
|
||||
```sh
|
||||
apk add gitea gitea-openrc
|
||||
rc-update add gitea default
|
||||
rc-service gitea start
|
||||
```
|
||||
|
||||
Refresh checksums:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=gitea mise run apk:checksum
|
||||
```
|
||||
|
||||
Build:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=gitea mise run apk:build
|
||||
```
|
||||
|
||||
Install-test local build:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=gitea SKIP_BUILD=1 mise run apk:test-install
|
||||
```
|
||||
@@ -0,0 +1,26 @@
|
||||
# Configuration cheat sheet: https://docs.gitea.io/en-us/config-cheat-sheet/
|
||||
|
||||
RUN_USER = gitea
|
||||
RUN_MODE = prod
|
||||
|
||||
[repository]
|
||||
ROOT = /var/lib/gitea/git
|
||||
SCRIPT_TYPE = sh
|
||||
|
||||
[server]
|
||||
STATIC_ROOT_PATH = /usr/share/webapps/gitea
|
||||
APP_DATA_PATH = /var/lib/gitea/data
|
||||
LFS_START_SERVER = true
|
||||
|
||||
[database]
|
||||
DB_TYPE = sqlite3
|
||||
PATH = /var/lib/gitea/db/gitea.db
|
||||
SSL_MODE = disable
|
||||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
|
||||
[log]
|
||||
ROOT_PATH = /var/log/gitea
|
||||
MODE = file
|
||||
LEVEL = Info
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
supervisor=supervise-daemon
|
||||
name=gitea
|
||||
command="/usr/bin/gitea"
|
||||
command_user="${GITEA_USER:-gitea}"
|
||||
command_args="web --config '${GITEA_CONF:-/etc/gitea/app.ini}'"
|
||||
supervise_daemon_args="--env GITEA_WORK_DIR='${GITEA_WORK_DIR:-/var/lib/gitea}' --chdir '${GITEA_WORK_DIR:-/var/lib/gitea}' --stdout '${GITEA_LOG_FILE:-/var/log/gitea/http.log}' --stderr '${GITEA_LOG_FILE:-/var/log/gitea/http.log}'"
|
||||
pidfile="/run/gitea.pid"
|
||||
extra_started_commands="reopen_log"
|
||||
capabilities="^cap_net_bind_service"
|
||||
|
||||
depend() {
|
||||
use logger dns
|
||||
need net
|
||||
after firewall mysql postgresql
|
||||
}
|
||||
|
||||
# https://github.com/go-gitea/gitea/issues/17976
|
||||
# reload() {
|
||||
# ebegin "Reloading ${RC_SVCNAME}"
|
||||
# ${supervisor} ${RC_SVCNAME} --signal HUP --pidfile "${pidfile}"
|
||||
# eend $?
|
||||
# }
|
||||
|
||||
reopen_log() {
|
||||
ebegin "Reopening logfile for ${RC_SVCNAME}"
|
||||
${supervisor} ${RC_SVCNAME} --signal USR1 --pidfile "${pidfile}"
|
||||
eend $?
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
addgroup -S www-data 2>/dev/null
|
||||
adduser -S -D -H -h /var/lib/gitea -s /sbin/nologin \
|
||||
-G www-data -g gitea gitea 2>/dev/null
|
||||
|
||||
exit 0
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
apk add gitea gitea-doc gitea-openrc
|
||||
|
||||
test -x /usr/bin/gitea
|
||||
test -f /etc/gitea/app.ini
|
||||
test -d /var/lib/gitea
|
||||
test -d /var/lib/gitea/git
|
||||
test -d /var/lib/gitea/data
|
||||
test -d /var/lib/gitea/db
|
||||
test -d /var/log/gitea
|
||||
test -d /usr/share/webapps/gitea/options
|
||||
test -d /usr/share/webapps/gitea/public
|
||||
test -d /usr/share/webapps/gitea/templates
|
||||
test -f /etc/init.d/gitea
|
||||
|
||||
gitea --version
|
||||
|
||||
rc-update add gitea default || true
|
||||
test -L /etc/runlevels/default/gitea
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
||||
package_name="${PACKAGE_NAME:-gitea}"
|
||||
package_version="${PACKAGE_VERSION:-1.26.4-r0}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
repository_url="${ALPINE_REPOSITORY_URL:-}"
|
||||
repository_key_url="${ALPINE_REPOSITORY_KEY_URL:-}"
|
||||
|
||||
case "${arch}" in
|
||||
x86_64)
|
||||
platform="${ALPINE_TEST_PLATFORM:-linux/amd64}"
|
||||
;;
|
||||
aarch64)
|
||||
platform="${ALPINE_TEST_PLATFORM:-linux/arm64}"
|
||||
;;
|
||||
*)
|
||||
printf 'unsupported Alpine architecture: %s\n' "${arch}" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -z "${repository_url}" && "${SKIP_BUILD:-0}" != "1" ]]; then
|
||||
ALPINE_PACKAGE="${package_name}" "${repo_root}/scripts/apk/build.sh" build "${arch}"
|
||||
fi
|
||||
|
||||
if [[ -z "${repository_url}" && ! -d "${repo_root}/packages/local/${arch}" ]]; then
|
||||
printf 'missing local repository: packages/local/%s\n' "${arch}" >&2
|
||||
printf 'run: ALPINE_PACKAGE=%s mise run apk:build\n' "${package_name}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker run --rm --platform "${platform}" \
|
||||
-e "ALPINE_ARCH=${arch}" \
|
||||
-e "PACKAGE_NAME=${package_name}" \
|
||||
-e "PACKAGE_VERSION=${package_version}" \
|
||||
-e "ALPINE_REPOSITORY_URL=${repository_url}" \
|
||||
-e "ALPINE_REPOSITORY_KEY_URL=${repository_key_url}" \
|
||||
-v "${repo_root}/packages/local:/repo:ro" \
|
||||
"alpine:${alpine_version}" \
|
||||
sh -lc '
|
||||
set -e
|
||||
|
||||
if [ -n "${ALPINE_REPOSITORY_URL}" ]; then
|
||||
if [ -n "${ALPINE_REPOSITORY_KEY_URL}" ]; then
|
||||
apk add --no-cache curl >/dev/null
|
||||
cd /etc/apk/keys
|
||||
curl -fsSLOJ "${ALPINE_REPOSITORY_KEY_URL}"
|
||||
fi
|
||||
printf "%s\n" "${ALPINE_REPOSITORY_URL}" >> /etc/apk/repositories
|
||||
else
|
||||
apk update
|
||||
apk add "${PACKAGE_NAME}"
|
||||
installed_before="$(apk list -I "${PACKAGE_NAME}" | awk "{print \$1}")"
|
||||
printf "Installed repository package before local upgrade: %s\n" "${installed_before}"
|
||||
if [ "${installed_before}" = "${PACKAGE_NAME}-${PACKAGE_VERSION}" ]; then
|
||||
printf "default repository already has %s; upgrade path was not exercised\n" "${PACKAGE_VERSION}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "/repo/${ALPINE_ARCH}"/*.rsa.pub /etc/apk/keys/
|
||||
printf "%s\n" /repo >> /etc/apk/repositories
|
||||
fi
|
||||
apk update
|
||||
apk add --upgrade "${PACKAGE_NAME}" "${PACKAGE_NAME}-doc" "${PACKAGE_NAME}-openrc"
|
||||
installed_after="$(apk list -I "${PACKAGE_NAME}" | awk "{print \$1}")"
|
||||
printf "Installed package after local upgrade: %s\n" "${installed_after}"
|
||||
test "${installed_after}" = "${PACKAGE_NAME}-${PACKAGE_VERSION}"
|
||||
|
||||
test -x /usr/bin/gitea
|
||||
test -f /etc/gitea/app.ini
|
||||
test -d /var/lib/gitea
|
||||
test -d /var/lib/gitea/git
|
||||
test -d /var/lib/gitea/data
|
||||
test -d /var/lib/gitea/db
|
||||
test -d /var/log/gitea
|
||||
test -d /usr/share/webapps/gitea/options
|
||||
test -d /usr/share/webapps/gitea/public
|
||||
test -d /usr/share/webapps/gitea/templates
|
||||
test -f /etc/init.d/gitea
|
||||
|
||||
gitea --version
|
||||
|
||||
rc-update add gitea default
|
||||
test -L /etc/runlevels/default/gitea
|
||||
'
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
||||
package_name="${PACKAGE_NAME:-greptimedb}"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
repository_url="${ALPINE_REPOSITORY_URL:-}"
|
||||
repository_key_url="${ALPINE_REPOSITORY_KEY_URL:-}"
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# Maintainer: Joachim Schlöffel <me@joachim-schloeffel.com>
|
||||
pkgname=lavinmq
|
||||
pkgver=2.9.1
|
||||
pkgrel=0
|
||||
pkgdesc="High-performance AMQP and MQTT message queue server"
|
||||
url="https://github.com/cloudamqp/lavinmq"
|
||||
arch="x86_64"
|
||||
license="Apache-2.0"
|
||||
depends="ca-certificates /bin/sh"
|
||||
makedepends="
|
||||
crystal>=1.20.1
|
||||
curl
|
||||
gc-dev
|
||||
help2man
|
||||
libevent-dev
|
||||
lz4-dev
|
||||
make
|
||||
openssl
|
||||
openssl-dev
|
||||
pcre2-dev
|
||||
shards
|
||||
tar
|
||||
yaml-dev
|
||||
"
|
||||
install="$pkgname.pre-install"
|
||||
subpackages="
|
||||
$pkgname-doc
|
||||
$pkgname-openrc:_openrc:noarch
|
||||
"
|
||||
options="net"
|
||||
source="
|
||||
$pkgname-$pkgver.tar.gz::https://github.com/cloudamqp/lavinmq/archive/refs/tags/v$pkgver.tar.gz
|
||||
lavinmq.confd
|
||||
lavinmq.initd
|
||||
"
|
||||
|
||||
export CRYSTAL_CACHE_DIR="${CRYSTAL_CACHE_DIR:-$srcdir/crystal-cache}"
|
||||
export SHARDS_CACHE_PATH="${SHARDS_CACHE_PATH:-$srcdir/shards-cache}"
|
||||
|
||||
build() {
|
||||
make
|
||||
make man
|
||||
}
|
||||
|
||||
check() {
|
||||
bin/lavinmq -v
|
||||
bin/lavinmqctl --version
|
||||
bin/lavinmqperf --version
|
||||
}
|
||||
|
||||
package() {
|
||||
make DESTDIR="$pkgdir" install
|
||||
rm -r "$pkgdir"/lib/systemd "$pkgdir"/usr/lib/sysusers.d
|
||||
rmdir "$pkgdir"/lib "$pkgdir"/usr/lib
|
||||
}
|
||||
|
||||
_openrc() {
|
||||
pkgdesc="$pkgdesc (OpenRC service)"
|
||||
depends="$pkgname=$pkgver-r$pkgrel openrc"
|
||||
|
||||
install -Dm755 "$srcdir"/lavinmq.initd \
|
||||
"$subpkgdir"/etc/init.d/lavinmq
|
||||
install -Dm644 "$srcdir"/lavinmq.confd \
|
||||
"$subpkgdir"/etc/conf.d/lavinmq
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
5f88de7a1e093b1f6e2ead5c340140bd489a99ca8adfa9f40052148490d0bdf8ff1e2dad67727e9799ad1f942755df01525e63d24b0901684a743f43c42110b9 lavinmq-2.9.1.tar.gz
|
||||
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd
|
||||
76fbfa1b14c58631e92f817e689584239eb644e68460c091decdcabe7661aeb210f9128545262add2fb07eeee155c8734f1e612fc59ebb897d3c67e95a56350f lavinmq.initd
|
||||
"
|
||||
@@ -0,0 +1,72 @@
|
||||
# LavinMQ Alpine Package
|
||||
|
||||
Builds LavinMQ from the upstream source release for `x86_64` and packages the
|
||||
OpenRC service plus `/etc/lavinmq` defaults.
|
||||
|
||||
Build command:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
LavinMQ 2.9.1 requires Crystal 1.20.1 or newer, so build with Alpine 3.24 or
|
||||
newer.
|
||||
|
||||
## Runtime Layout
|
||||
|
||||
Installs:
|
||||
|
||||
- `lavinmq`
|
||||
- `lavinmqctl`
|
||||
- `lavinmqperf`
|
||||
- `/etc/lavinmq/lavinmq.ini`
|
||||
- `/var/lib/lavinmq`
|
||||
|
||||
Default ports:
|
||||
|
||||
- `5672`: AMQP
|
||||
- `15672`: management UI
|
||||
|
||||
## OpenRC Usage
|
||||
|
||||
```sh
|
||||
apk add lavinmq lavinmq-doc lavinmq-openrc
|
||||
rc-update add lavinmq default
|
||||
rc-service lavinmq start
|
||||
```
|
||||
|
||||
Wrapper settings in `/etc/conf.d/lavinmq`:
|
||||
|
||||
- `LAVINMQ_CONFIG`: config file path passed with `--config`
|
||||
- `LAVINMQ_DATA_DIR`: data directory passed with `-D`
|
||||
- `LAVINMQ_OPTS`: extra LavinMQ arguments appended after package defaults
|
||||
|
||||
## Package Commands
|
||||
|
||||
Refresh checksums:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=lavinmq mise run apk:checksum
|
||||
```
|
||||
|
||||
Build:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=lavinmq mise run apk:build
|
||||
```
|
||||
|
||||
Install-test local build:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install
|
||||
```
|
||||
|
||||
Install-test published repository:
|
||||
|
||||
```sh
|
||||
ALPINE_PACKAGE=lavinmq \
|
||||
SKIP_BUILD=1 \
|
||||
ALPINE_REPOSITORY_URL=https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages \
|
||||
ALPINE_REPOSITORY_KEY_URL=https://code.factoring.digital/api/packages/public/alpine/key \
|
||||
mise run apk:test-install
|
||||
```
|
||||
@@ -0,0 +1,4 @@
|
||||
# Defaults for LavinMQ.
|
||||
LAVINMQ_CONFIG="/etc/lavinmq/lavinmq.ini"
|
||||
LAVINMQ_DATA_DIR="/var/lib/lavinmq"
|
||||
LAVINMQ_OPTS=""
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
description="LavinMQ message queue service"
|
||||
|
||||
command="/usr/bin/lavinmq"
|
||||
command_user="${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}"
|
||||
command_background="yes"
|
||||
pidfile="/run/lavinmq/lavinmq.pid"
|
||||
output_log="${LAVINMQ_LOG:-/var/log/lavinmq/lavinmq.log}"
|
||||
error_log="${LAVINMQ_ERRLOG:-/var/log/lavinmq/lavinmq.log}"
|
||||
|
||||
config_file="${LAVINMQ_CONFIG:-/etc/lavinmq/lavinmq.ini}"
|
||||
data_dir="${LAVINMQ_DATA_DIR:-/var/lib/lavinmq}"
|
||||
command_args="-D ${data_dir} --config ${config_file} ${LAVINMQ_OPTS:-}"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
checkpath -d -m 0755 -o "${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}" \
|
||||
/run/lavinmq \
|
||||
/var/log/lavinmq
|
||||
checkpath -d -m 0750 -o "${LAVINMQ_USER:-lavinmq}:${LAVINMQ_GROUP:-lavinmq}" \
|
||||
"$data_dir"
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
addgroup -S lavinmq 2>/dev/null
|
||||
adduser -S -D -H -h /var/lib/lavinmq -s /sbin/nologin \
|
||||
-G lavinmq -g lavinmq lavinmq 2>/dev/null
|
||||
|
||||
exit 0
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
apk add lavinmq lavinmq-doc lavinmq-openrc
|
||||
|
||||
test -x /usr/bin/lavinmq
|
||||
test -x /usr/bin/lavinmqctl
|
||||
test -x /usr/bin/lavinmqperf
|
||||
test -f /etc/lavinmq/lavinmq.ini
|
||||
test -d /var/lib/lavinmq
|
||||
test -f /etc/conf.d/lavinmq
|
||||
test -f /etc/init.d/lavinmq
|
||||
test -f /usr/share/doc/lavinmq/README.md
|
||||
|
||||
lavinmq -v
|
||||
lavinmqctl --version
|
||||
lavinmqperf --version
|
||||
|
||||
rc-update add lavinmq default || true
|
||||
test -L /etc/runlevels/default/lavinmq
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
||||
package_name="${PACKAGE_NAME:-lavinmq}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
repository_url="${ALPINE_REPOSITORY_URL:-}"
|
||||
repository_key_url="${ALPINE_REPOSITORY_KEY_URL:-}"
|
||||
|
||||
case "${arch}" in
|
||||
x86_64)
|
||||
platform="${ALPINE_TEST_PLATFORM:-linux/amd64}"
|
||||
;;
|
||||
aarch64)
|
||||
platform="${ALPINE_TEST_PLATFORM:-linux/arm64}"
|
||||
;;
|
||||
*)
|
||||
printf 'unsupported Alpine architecture: %s\n' "${arch}" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -z "${repository_url}" && "${SKIP_BUILD:-0}" != "1" ]]; then
|
||||
ALPINE_PACKAGE="${package_name}" "${repo_root}/scripts/apk/build.sh" build "${arch}"
|
||||
fi
|
||||
|
||||
if [[ -z "${repository_url}" && ! -d "${repo_root}/packages/local/${arch}" ]]; then
|
||||
printf 'missing local repository: packages/local/%s\n' "${arch}" >&2
|
||||
printf 'run: ALPINE_PACKAGE=%s mise run apk:build\n' "${package_name}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker run --rm --platform "${platform}" \
|
||||
-e "ALPINE_ARCH=${arch}" \
|
||||
-e "PACKAGE_NAME=${package_name}" \
|
||||
-e "ALPINE_REPOSITORY_URL=${repository_url}" \
|
||||
-e "ALPINE_REPOSITORY_KEY_URL=${repository_key_url}" \
|
||||
-v "${repo_root}/packages/local:/repo:ro" \
|
||||
"alpine:${alpine_version}" \
|
||||
sh -lc '
|
||||
set -e
|
||||
|
||||
if [ -n "${ALPINE_REPOSITORY_URL}" ]; then
|
||||
if [ -n "${ALPINE_REPOSITORY_KEY_URL}" ]; then
|
||||
apk add --no-cache curl >/dev/null
|
||||
cd /etc/apk/keys
|
||||
curl -fsSLOJ "${ALPINE_REPOSITORY_KEY_URL}"
|
||||
fi
|
||||
printf "%s\n" "${ALPINE_REPOSITORY_URL}" >> /etc/apk/repositories
|
||||
else
|
||||
cp "/repo/${ALPINE_ARCH}"/*.rsa.pub /etc/apk/keys/
|
||||
printf "%s\n" /repo >> /etc/apk/repositories
|
||||
fi
|
||||
apk update
|
||||
apk add "${PACKAGE_NAME}" "${PACKAGE_NAME}-doc" "${PACKAGE_NAME}-openrc"
|
||||
|
||||
test -x /usr/bin/lavinmq
|
||||
test -x /usr/bin/lavinmqctl
|
||||
test -x /usr/bin/lavinmqperf
|
||||
test -f /etc/lavinmq/lavinmq.ini
|
||||
test -d /var/lib/lavinmq
|
||||
test -f /etc/conf.d/lavinmq
|
||||
test -f /etc/init.d/lavinmq
|
||||
test -f /usr/share/doc/lavinmq/README.md
|
||||
test -f /usr/share/doc/lavinmq/changelog
|
||||
|
||||
lavinmq -v
|
||||
lavinmqctl --version
|
||||
lavinmqperf --version
|
||||
|
||||
rc-update add lavinmq default
|
||||
test -L /etc/runlevels/default/lavinmq
|
||||
'
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
repo_root="${REPO_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../../.." && pwd)}"
|
||||
package_name="${PACKAGE_NAME:-seaweedfs}"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
|
||||
case "${arch}" in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ARG ALPINE_VERSION=3.23
|
||||
ARG ALPINE_VERSION=3.24
|
||||
FROM alpine:${ALPINE_VERSION}
|
||||
|
||||
ARG BUILDER_UID=1000
|
||||
|
||||
@@ -6,7 +6,7 @@ requested_arch="${2:-${ALPINE_ARCH:-x86_64}}"
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
. "${repo_root}/scripts/apk/package-lib.sh"
|
||||
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
repo_name="${ALPINE_REPO_NAME:-local}"
|
||||
build_platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}"
|
||||
builder_uid="$(id -u)"
|
||||
|
||||
+21
-3
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
repo_name="${ALPINE_REPO_NAME:-local}"
|
||||
arch="${ALPINE_ARCH:-$(apk --print-arch)}"
|
||||
packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb}"
|
||||
packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-openrc gitea gitea-openrc}"
|
||||
repo_dir="${repo_root}/packages/${repo_name}/${arch}"
|
||||
read -r -a package_list <<< "${packages}"
|
||||
|
||||
@@ -17,11 +17,29 @@ cp "${repo_dir}"/*.rsa.pub /etc/apk/keys/
|
||||
echo "${repo_root}/packages/${repo_name}" >> /etc/apk/repositories
|
||||
apk update
|
||||
apk add "${package_list[@]}"
|
||||
weed version
|
||||
if command -v weed >/dev/null 2>&1; then
|
||||
weed version
|
||||
ls -1 /etc/seaweedfs
|
||||
fi
|
||||
if command -v greptime >/dev/null 2>&1; then
|
||||
greptime --version
|
||||
fi
|
||||
ls -1 /etc/seaweedfs
|
||||
if command -v lavinmq >/dev/null 2>&1; then
|
||||
lavinmq -v
|
||||
lavinmqctl --version
|
||||
lavinmqperf --version
|
||||
fi
|
||||
if command -v gitea >/dev/null 2>&1; then
|
||||
gitea --version
|
||||
test -f /etc/gitea/app.ini
|
||||
test -d /var/lib/gitea
|
||||
fi
|
||||
if ls /etc/init.d/seaweedfs.* >/dev/null 2>&1; then
|
||||
find /etc/init.d -maxdepth 1 -name 'seaweedfs.*' -print | sort
|
||||
fi
|
||||
if [[ -f /etc/init.d/lavinmq ]]; then
|
||||
printf '%s\n' /etc/init.d/lavinmq
|
||||
fi
|
||||
if [[ -f /etc/init.d/gitea ]]; then
|
||||
printf '%s\n' /etc/init.d/gitea
|
||||
fi
|
||||
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
repo_name="${ALPINE_REPO_NAME:-local}"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
branch="${ALPINE_REGISTRY_BRANCH:-v${alpine_version}}"
|
||||
repository="${ALPINE_REGISTRY_REPOSITORY:-${PACKAGE_NAME:-main}}"
|
||||
instance_url="${INSTANCE_URL:-}"
|
||||
|
||||
+25
-4
@@ -2,10 +2,10 @@
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc}"
|
||||
packages="${SMOKE_PACKAGES:-seaweedfs seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-openrc gitea gitea-openrc}"
|
||||
|
||||
if [[ ! -d "${repo_root}/packages/local/${arch}" ]]; then
|
||||
printf 'missing local repository: packages/local/%s\n' "${arch}" >&2
|
||||
@@ -22,9 +22,30 @@ docker run --rm --platform "${platform}" \
|
||||
echo /repo >> /etc/apk/repositories
|
||||
apk update >/dev/null
|
||||
apk add ${packages} >/dev/null
|
||||
weed version
|
||||
ls -1 /etc/seaweedfs
|
||||
if command -v weed >/dev/null 2>&1; then
|
||||
weed version
|
||||
ls -1 /etc/seaweedfs
|
||||
fi
|
||||
if command -v greptime >/dev/null 2>&1; then
|
||||
greptime --version
|
||||
fi
|
||||
if command -v lavinmq >/dev/null 2>&1; then
|
||||
lavinmq -v
|
||||
lavinmqctl --version
|
||||
lavinmqperf --version
|
||||
fi
|
||||
if command -v gitea >/dev/null 2>&1; then
|
||||
gitea --version
|
||||
test -f /etc/gitea/app.ini
|
||||
test -d /var/lib/gitea
|
||||
fi
|
||||
if ls /etc/init.d/seaweedfs.* >/dev/null 2>&1; then
|
||||
ls -1 /etc/init.d/seaweedfs.* | sort
|
||||
fi
|
||||
if [ -f /etc/init.d/lavinmq ]; then
|
||||
ls -1 /etc/init.d/lavinmq
|
||||
fi
|
||||
if [ -f /etc/init.d/gitea ]; then
|
||||
ls -1 /etc/init.d/gitea
|
||||
fi
|
||||
"
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
alpine_version="${ALPINE_VERSION:-3.23}"
|
||||
alpine_version="${ALPINE_VERSION:-3.24}"
|
||||
platform="${ALPINE_BUILD_PLATFORM:-linux/amd64}"
|
||||
arch="${ALPINE_ARCH:-x86_64}"
|
||||
packages="${TEST_SHELL_PACKAGES:-seaweedfs seaweedfs-doc bash-completion seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc}"
|
||||
packages="${TEST_SHELL_PACKAGES:-seaweedfs seaweedfs-doc bash-completion seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc greptimedb lavinmq lavinmq-doc lavinmq-openrc gitea gitea-doc gitea-openrc}"
|
||||
shell="${TEST_SHELL:-/bin/bash}"
|
||||
timeout_seconds="${TEST_SHELL_TIMEOUT:-120}"
|
||||
|
||||
@@ -49,12 +49,28 @@ docker run "${docker_args[@]}" \
|
||||
printf "Installing test packages: %s\n" "${PACKAGE_LIST}"
|
||||
timeout "${TEST_SHELL_TIMEOUT}" apk add ${PACKAGE_LIST}
|
||||
|
||||
printf "\nInstalled SeaweedFS packages:\n"
|
||||
printf "\nInstalled default test packages:\n"
|
||||
apk info -e seaweedfs seaweedfs-doc seaweedfs-bash-completion \
|
||||
seaweedfs-master-openrc seaweedfs-filer-openrc seaweedfs-worker-openrc \
|
||||
greptimedb lavinmq lavinmq-doc lavinmq-openrc \
|
||||
gitea gitea-doc gitea-openrc \
|
||||
| sort
|
||||
printf "\nSeaweedFS version:\n"
|
||||
weed version
|
||||
if command -v weed >/dev/null 2>&1; then
|
||||
printf "\nSeaweedFS version:\n"
|
||||
weed version
|
||||
fi
|
||||
if command -v greptime >/dev/null 2>&1; then
|
||||
printf "\nGreptimeDB version:\n"
|
||||
greptime --version
|
||||
fi
|
||||
if command -v lavinmq >/dev/null 2>&1; then
|
||||
printf "\nLavinMQ version:\n"
|
||||
lavinmq -v
|
||||
fi
|
||||
if command -v gitea >/dev/null 2>&1; then
|
||||
printf "\nGitea version:\n"
|
||||
gitea --version
|
||||
fi
|
||||
printf "\nEntering %s. Repository mounted read-only at /work.\n\n" "${TEST_SHELL}"
|
||||
exec "${TEST_SHELL}"
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user