feat(deploy): add Ubuntu 26.04 production package
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
# shellcheck source=lib.sh
|
||||
source "$(dirname -- "${BASH_SOURCE[0]}")/lib.sh"
|
||||
|
||||
env_file="${1:-/etc/lehuo/lehuo.env}"
|
||||
require_env_file "$env_file"
|
||||
release_dir='/opt/lehuo/releases'
|
||||
[[ -f "$release_dir/previous" ]] || { echo '没有可回滚的上一镜像标签。' >&2; exit 1; }
|
||||
|
||||
previous_tag="$(<"$release_dir/previous")"
|
||||
current_tag="$(<"$release_dir/current")"
|
||||
[[ -n "$previous_tag" && "$previous_tag" != 'latest' ]] || { echo '上一镜像标签无效。' >&2; exit 1; }
|
||||
|
||||
if ! docker image inspect "lehuo-api:${previous_tag}" >/dev/null 2>&1 || ! docker image inspect "lehuo-admin:${previous_tag}" >/dev/null 2>&1; then
|
||||
echo '上一版本镜像在本机不存在,停止回滚。' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '注意:此操作只回滚应用镜像,不回滚数据库。migration 必须保持向后兼容。'
|
||||
IMAGE_TAG="$previous_tag" compose "$env_file" up -d --no-build api web
|
||||
bash "$(dirname -- "${BASH_SOURCE[0]}")/smoke.sh" "$env_file"
|
||||
printf '%s\n' "$previous_tag" > "$release_dir/current"
|
||||
printf '%s\n' "$current_tag" > "$release_dir/previous"
|
||||
chmod 600 "$release_dir/current" "$release_dir/previous"
|
||||
printf '应用已回滚到:%s\n' "$previous_tag"
|
||||
Reference in New Issue
Block a user