feat(deploy): add Ubuntu 26.04 production package
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
ubuntu_dir() {
|
||||
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd
|
||||
}
|
||||
repo_root() {
|
||||
cd -- "$(ubuntu_dir)/../.." && pwd
|
||||
}
|
||||
|
||||
compose_file() {
|
||||
printf '%s/compose.yaml\n' "$(ubuntu_dir)"
|
||||
}
|
||||
|
||||
require_command() {
|
||||
command -v "$1" >/dev/null 2>&1 || {
|
||||
printf '缺少命令:%s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
require_env_file() {
|
||||
local file="$1"
|
||||
[[ -f "$file" ]] || {
|
||||
printf '环境文件不存在:%s\n' "$file" >&2
|
||||
exit 1
|
||||
}
|
||||
local mode
|
||||
mode="$(stat -c '%a' "$file")"
|
||||
if [[ "$mode" != '600' && "$mode" != '400' ]]; then
|
||||
printf '环境文件权限必须是 600 或 400,当前为 %s:%s\n' "$mode" "$file" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
env_value() {
|
||||
local file="$1"
|
||||
local key="$2"
|
||||
sed -n "s/^${key}=//p" "$file" | tail -n 1
|
||||
}
|
||||
|
||||
compose() {
|
||||
local env_file="$1"
|
||||
shift
|
||||
docker compose --project-directory "$(ubuntu_dir)" --env-file "$env_file" -f "$(compose_file)" "$@"
|
||||
}
|
||||
Reference in New Issue
Block a user