deploy: 修复容器内 18091/18092 监听;支持 --no-cache 重建
This commit is contained in:
@ -6,6 +6,7 @@
|
|||||||
# ./deploy.sh web 只更新前端
|
# ./deploy.sh web 只更新前端
|
||||||
# ./deploy.sh --rollback 切回上一个槽(不动代码,秒级)
|
# ./deploy.sh --rollback 切回上一个槽(不动代码,秒级)
|
||||||
# ./deploy.sh all --no-pull 用服务器上现有代码构建
|
# ./deploy.sh all --no-pull 用服务器上现有代码构建
|
||||||
|
# ./deploy.sh web --no-cache 强制不用构建缓存(前端 SSG 依赖后端数据,数据变了要强制重建)
|
||||||
# ./deploy.sh --prune 只清理旧镜像(保留最近 KEEP_IMAGES 个,默认 5)
|
# ./deploy.sh --prune 只清理旧镜像(保留最近 KEEP_IMAGES 个,默认 5)
|
||||||
# GIT_BRANCH=dev ./deploy.sh all 临时指定分支(优先于 .env)
|
# GIT_BRANCH=dev ./deploy.sh all 临时指定分支(优先于 .env)
|
||||||
#
|
#
|
||||||
@ -16,14 +17,16 @@ cd "$(dirname "$0")"
|
|||||||
|
|
||||||
TARGET="backend"
|
TARGET="backend"
|
||||||
NO_PULL=0
|
NO_PULL=0
|
||||||
|
NO_CACHE=0
|
||||||
PRUNE_ONLY=0
|
PRUNE_ONLY=0
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
backend|web|all) TARGET="$arg" ;;
|
backend|web|all) TARGET="$arg" ;;
|
||||||
--rollback) TARGET="rollback" ;;
|
--rollback) TARGET="rollback" ;;
|
||||||
--no-pull) NO_PULL=1 ;;
|
--no-pull) NO_PULL=1 ;;
|
||||||
|
--no-cache) NO_CACHE=1 ;;
|
||||||
--prune) PRUNE_ONLY=1 ;;
|
--prune) PRUNE_ONLY=1 ;;
|
||||||
*) echo "用法: ./deploy.sh [backend|web|all|--rollback|--prune] [--no-pull]"; exit 1 ;;
|
*) echo "用法: ./deploy.sh [backend|web|all|--rollback|--prune] [--no-pull] [--no-cache]"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -148,7 +151,9 @@ roll() { # $1=component(backend|web)
|
|||||||
old=$(cur_slot "$comp"); idle=$(other_slot "$old")
|
old=$(cur_slot "$comp"); idle=$(other_slot "$old")
|
||||||
echo "==> $comp:活跃槽 $old,更新空闲槽 $idle(镜像 $RELEASE)"
|
echo "==> $comp:活跃槽 $old,更新空闲槽 $idle(镜像 $RELEASE)"
|
||||||
|
|
||||||
docker compose build "${comp}_a" >/dev/null
|
local build_flag=""
|
||||||
|
[ "$NO_CACHE" = "1" ] && build_flag="--no-cache"
|
||||||
|
docker compose build $build_flag "${comp}_a" >/dev/null
|
||||||
# latest 只是给手动执行 compose 命令用的便利别名,deploy 自己从不依赖它
|
# latest 只是给手动执行 compose 命令用的便利别名,deploy 自己从不依赖它
|
||||||
docker tag "fashion-${comp}:${RELEASE}" "fashion-${comp}:latest" 2>/dev/null || true
|
docker tag "fashion-${comp}:${RELEASE}" "fashion-${comp}:latest" 2>/dev/null || true
|
||||||
|
|
||||||
|
|||||||
@ -71,7 +71,7 @@ server {
|
|||||||
|
|
||||||
# 内部:前端构建期取 SSG 数据(只绑宿主回环,前端镜像 build 时用 host 网络访问)
|
# 内部:前端构建期取 SSG 数据(只绑宿主回环,前端镜像 build 时用 host 网络访问)
|
||||||
server {
|
server {
|
||||||
listen 127.0.0.1:18091;
|
listen 18091; # 容器内必须监听 0.0.0.0,否则 docker 端口发布到容器网卡时连不上;宿主机只发布到 127.0.0.1
|
||||||
access_log off;
|
access_log off;
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://$ssg_up;
|
proxy_pass http://$ssg_up;
|
||||||
@ -81,7 +81,7 @@ server {
|
|||||||
|
|
||||||
# 内部:管理后台(只绑宿主回环;远程访问用 SSH 隧道到 18092)
|
# 内部:管理后台(只绑宿主回环;远程访问用 SSH 隧道到 18092)
|
||||||
server {
|
server {
|
||||||
listen 127.0.0.1:18092;
|
listen 18092; # 同上:容器内回环监听会导致 docker 端口发布不可达(管理后台/爬虫入库走此口)
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://$admin_up;
|
proxy_pass http://$admin_up;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
|||||||
Reference in New Issue
Block a user