网站云端部署
本文最后更新于55 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一.前端部署路径依赖:假设宿主机目录 /root/docker/volumes 已提前创建)

总结

该脚本完成了以下操作:

清理环境 → 2. 构建镜像 → 3. 启动容器 → 4. 部署代码 → 5. 运行服务 → 6. 监控日志

核心目标:全自动化部署 Vue3 前端项目到 Docker 容器,并通过宿主机 80 端口访问

1. 清理旧容器和镜像:docker rm -f custom_nvm_0.40.1 && docker rmi custom_nvm:0.40.1

(docker rm -f:强制删除名为 custom_nvm_0.40.1 的容器(若存在)。

docker rmi:删除名为 custom_nvm:0.40.1 的镜像(若存在)。

目的:确保后续操作基于干净的初始状态。)

2. 进入目录并下载 Dockerfile:cd/root/docker/volumes/var/jenkins_home/tools/hudson.tasks.nvmInstallation/nvm/v0.40.1 && \wget -O ./custom-nvm-Dockerfile https://fchxqm.com/static/nvm/v0.40.1/custom-nvm-Dockerfile

(cd:切换到指定目录(Jenkins 的 NVM 工具路径)。

wget -O:从远程下载 custom-nvm-Dockerfile 并保存到当前目录。

目的:获取自定义的 Dockerfile 用于构建镜像)

3. 构建 Docker 镜像:docker build -t custom_nvm:0.40.1 -f ./custom-nvm-Dockerfile .

(docker build:使用当前目录下的 custom-nvm-Dockerfile 构建镜像,并打标签 custom_nvm:0.40.1

目的:创建一个包含 NVM 和 Node.js 环境的自定义镜像。)

4. 启动容器:docker run –name custom_nvm_0.40.1 –restart always -p 80:3000 \
-v /root/docker/volumes/nvm/usr/local/nvm/v0.40.1:/usr/local/nvm/v0.40.1 -d custom_nvm:0.40.1

(docker run 参数:

--name:容器命名为 custom_nvm_0.40.1

--restart always:容器退出时自动重启。

-p 80:3000:将宿主机的 80 端口映射到容器的 3000 端口(假设前端服务运行在 3000 端口)。

-v:挂载宿主机目录到容器内(持久化 NVM 环境)。

-d:后台运行容器。

目的:启动一个持久化的容器,准备部署前端应用。)

5. 检查容器状态:docker ps -a

作用:列出所有容器(包括运行中和已停止的),确认 custom_nvm_0.40.1 是否正常运行)

6. 下载并解压前端代码:mkdir -p /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog && \
wget -qO /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog/Vue3.zip https://fchxqm.com/static/personal_blog/Vue3.zip && \
cd /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog && \
yum -y install dnf && \dnf -y install unzip && \unzip Vue3.zip

(创建目录 personal_blog

下载前端代码压缩包 Vue3.zip

进入目录并安装解压工具(dnf 和 unzip)。

解压代码。

目的:部署 Vue3 前端代码到挂载目录。)

7. 下载并准备启动脚本:mkdir -p /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test && \
wget -qO /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh https://fchxqm.com/static/personal_blog/start_frontend.sh && \
cat /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh && \
chmod +x /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh

(创建临时目录 /test

下载启动脚本并赋予可执行权限。

cat 打印脚本内容(可能用于调试))

8. 在容器内执行启动脚本:docker exec -it custom_nvm_0.40.1 /bin/bash -i -c \
“cd /usr/local/nvm/v0.40.1/test && ./start_frontend.sh > start_frontend_output.log 2>&1 && \
cd /usr/local/nvm/v0.40.1/personal_blog/Vue3 && nohup npm run serve > start_frontend_output.log 2>&1 &”

(作用:运行 start_frontend.sh(可能安装依赖或初始化)。

在 Vue3 目录下启动前端服务(npm run serve),日志重定向到文件。

nohup 和 & 确保服务后台运行。

目的:启动前端应用。)

9. 清理临时目录:rm -rf /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test

(作用:删除临时脚本目录 /test)

10. 查看实时日志docker exec -it custom_nvm_0.40.1 /bin/bash -c \
“tail -f -n 50 /usr/local/nvm/v0.40.1/personal_blog/Vue3/start_frontend_output.log”

tail -f:实时监控前端服务日志的最后 50 行。)

11.最终总结:

个人博客_小破站系列_上云部署案例实战 一键部署 项目前端 安装命令: Linux>docker rm -f custom_nvm_0.40.1 && docker rmi custom_nvm:0.40.1 && \
cd /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.nvmInstallation/nvm/v0.40.1 && \
wget -O /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.nvmInstallation/nvm/v0.40.1/custom-nvm-Dockerfile https://fchxqm.com/static/nvm/v0.40.1/custom-nvm-Dockerfile && \
docker build -t custom_nvm:0.40.1 -f ./custom-nvm-Dockerfile . && \
docker run –name custom_nvm_0.40.1 –restart always -p 80:3000 -v /root/docker/volumes/nvm/usr/local/nvm/v0.40.1:/usr/local/nvm/v0.40.1 -d custom_nvm:0.40.1 && \
docker ps -a && \
mkdir -p /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog && wget -qO /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog/Vue3.zip https://fchxqm.com/static/personal_blog/Vue3.zip && cd /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog && yum -y install dnf && dnf -y install unzip && unzip Vue3.zip && \
mkdir -p /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test && wget -qO /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh https://fchxqm.com/static/personal_blog/start_frontend.sh && cat /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh && chmod +x /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test/start_frontend.sh && \
docker exec -it custom_nvm_0.40.1 /bin/bash -i -c ” cd /usr/local/nvm/v0.40.1/test && ./start_frontend.sh > start_frontend_output.log 2>&1 && cd /usr/local/nvm/v0.40.1/personal_blog/Vue3 && nohup npm run serve > start_frontend_output.log 2>&1 &” && rm -rf /root/docker/volumes/nvm/usr/local/nvm/v0.40.1/test && \
docker exec -it custom_nvm_0.40.1 /bin/bash -c “tail -f -n 50 /usr/local/nvm/v0.40.1/personal_blog/Vue3/start_frontend_output.log”

个人博客_小破站系列_上云部署案例实战 一键部署 项目后端 安装命令: Linux> docker rm -f personal_blog_java_11 && docker rmi java:11 && \ cd /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.JAVA_JDKInstallation/jdk-11_linux-x64_bin && \ wget -O /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.JAVA_JDKInstallation/jdk-11_linux-x64_bin/Dockerfile(2) https://fchxqm.com/static/jdk/11/Dockerfile(2)_lnk && \ docker build -t jdk:11 -f ./custom-nvm-Dockerfile . && \ docker run –name personal_blog_java_11 –restart always -i -d -p 8080:8080 -v /root/docker/volumes/var/jenkins_home:/var/jenkins_home -v /root/docker/volumes/blog/APIServer/personal_blog:/usr/local/app/personal_blog java:11 && \ docker ps -a && \ mkdir -p /root/docker/volumes/blog/APIServer && wget -qO /root/docker/volumes/blog/APIServer/backend.zip https://fchxqm.com/static/personal_blog/backend.zip && cd /root/docker/volumes/blog/APIServer && yum -y install dnf && dnf -y install unzip && unzip backend.zip && \ export PATH=”$PATH:/root/docker/volumes/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/apache-maven-3.8.1/bin” && export PATH=”$PATH:/root/docker/volumes/var/jenkins_home/tools/hudson.tasks.JAVA_JDKInstallation/jdk-11_linux-x64_bin/jdk-11.0.24_linux-x64_bin/bin” && cd /root/docker/volumes/blog/APIServer/personal_blog && mvn -v && mvn clean -s /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/apache-maven-3.8.1/conf/settings-yanxikeji.xml -e -X && \ cd /root/docker/volumes/blog/APIServer/personal_blog && mvn package -s /root/docker/volumes/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/apache-maven-3.8.1/conf/settings-yanxikeji.xml && \ mkdir -p /root/docker/volumes/blog/APIServer/personal_blog/test && wget -qO /root/docker/volumes/blog/APIServer/personal_blog/test/start_backend.sh https://fchxqm.com/static/personal_blog/start_backend.sh && cat /root/docker/volumes/blog/APIServer/personal_blog/test/start_backend.sh && chmod +x /root/docker/volumes/blog/APIServer/personal_blog/test/start_backend.sh && \ docker exec -it personal_blog_java_11 /bin/bash -i -c ” cd /usr/local/app/personal_blog/test && ./start_backend.sh > start_backend_output.log 2>&1 && cd /usr/local/app/personal_blog/target && nohup java -jar blog-backend-1.0.0.jar > start_blog-backend-1.0.0_all.log 2>&1 &” && rm -rf /root/docker/volumes/blog/APIServer/* && \ docker exec -it personal_blog_java_11 /bin/bash -c “tail -f -n 500 /usr/local/app/personal_blog/target/start_blog-backend-1.0.0_all.log”Linux> docker exec -it personal_blog_java_11 /bin/bash -c “tail -f -n 500 /usr/local/app/personal_blog/test/start_backend_output.log”

12.下次进入,启动前端:

docker exec -it custom_nvm_0.40.1 /bin/bash

一直cd 到Vue3

ps -ef|grep node

npm run serve

注意:云端环境 部署统一路径:
前端项目根路径:
/root/docker/volumes/blog/APIServer/personal_blog
后端项目根路径:
/root/docker/volumes/nvm/usr/local/nvm/v0.40.1/personal_blog/Vue3

文末附加内容

评论

  1. 2 月前
    2025-8-12 15:06:14

    您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇