博客自动构建镜像更新脚本

330 字
2 分钟
博客自动构建镜像更新脚本

主要自动build更新内容,每次手动敲真累~~~~

脚本内容#

#!/bin/bash
DATA_DIR="/opt/mizukiv/data"
echo "正在初始化数据目录..."
mkdir -p "$DATA_DIR/logs"
mkdir -p "$DATA_DIR/config"
mkdir -p "$DATA_DIR/html"
if [ ! -f "$DATA_DIR/config/nginx.conf" ]; then
echo "创建默认nginx配置..."
cat > "$DATA_DIR/config/nginx.conf" << 'EOF'
server {
listen 5090;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
location / {
try_files $uri $uri/ $uri.html =404;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}
EOF
fi
echo "正在构建Docker镜像..."
docker build --no-cache -t mizukiv . || {
echo "构建失败!退出部署脚本。"
exit 1
}
echo "检查是否有正在运行的容器..."
container_id=$(docker ps -q --filter "name=mizukiv")
if [ -n "$container_id" ]; then
echo "停止正在运行的容器: $container_id"
docker stop $container_id
docker rm $container_id
fi
echo "更新静态文件..."
echo "清理旧静态文件..."
rm -rf "$DATA_DIR/html/*"
echo "从镜像复制新静态文件..."
docker create --name mizukiv-temp mizukiv
docker cp mizukiv-temp:/usr/share/nginx/html/. "$DATA_DIR/html/"
docker rm mizukiv-temp
echo "静态文件更新完成"
echo "启动新容器..."
docker run -d \
-p 5090:5090 \
--name mizukiv \
--restart unless-stopped \
-v "$DATA_DIR/logs:/var/log/nginx" \
-v "$DATA_DIR/config/nginx.conf:/etc/nginx/conf.d/default.conf:ro" \
-v "$DATA_DIR/html:/usr/share/nginx/html" \
mizukiv
echo "容器已启动,数据持久化目录: $DATA_DIR"
echo " - 日志目录: $DATA_DIR/logs"
echo " - 配置目录: $DATA_DIR/config"
echo " - 静态文件: $DATA_DIR/html"
# echo "显示容器日志..."
# docker logs -f mizukiv

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

博客自动构建镜像更新脚本
https://vtdd.vip/posts/博客自动构建镜像更新脚本/
作者
Zero
发布于
2025-08-28
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Zero
有三件事人类都要经历:出生、生活和死亡。他们出生时无知无觉,死到临头,痛不欲生,活着的时候却又怠慢了人生。——拉布吕耶尔
分类
标签
最新动态
站点统计
文章
25
动态
1
分类
7
标签
27
总字数
11,266
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.14.3
文章许可
CC BY-NC-SA 4.0