File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -56,23 +56,30 @@ jobs:
5656 cp -r vue/dist release/dist
5757 cp vue/Dockerfile vue/docker.sh vue/nginx.conf release/
5858
59+ # 在 GitHub Runner 构建镜像并导出,避免国内服务器直连 Docker Hub 拉取 nginx:alpine 超时
60+ - name : Build Docker image on runner
61+ run : |
62+ docker build -t openblog-web release/
63+ docker save openblog-web | gzip > release/openblog-web.tar.gz
64+
5965 - name : Deploy files to server
6066 uses : easingthemes/ssh-deploy@v5.1.1
6167 with :
6268 SSH_PRIVATE_KEY : ${{ secrets.SERVER_SSH_KEY }}
6369 ARGS : " -rlgoDzvc --delete --exclude=dist/.user.ini"
64- SOURCE : " release/dist release/Dockerfile release/docker.sh release/nginx.conf"
70+ SOURCE : " release/dist release/Dockerfile release/docker.sh release/nginx.conf release/openblog-web.tar.gz "
6571 REMOTE_HOST : ${{ secrets.SERVER_REMOTE_HOST }}
6672 REMOTE_USER : ${{ secrets.SERVER_REMOTE_USER }}
6773 TARGET : ${{ secrets.SERVER_TARGET }}
6874 SCRIPT_BEFORE : ls -la
6975
7076 - name : Run Docker commands on server
71- uses : appleboy/ssh-action@v1
77+ uses : appleboy/ssh-action@v1.2.0
7278 with :
7379 host : ${{ secrets.SERVER_REMOTE_HOST }}
7480 username : ${{ secrets.SERVER_REMOTE_USER }}
7581 key : ${{ secrets.SERVER_SSH_KEY }}
82+ command_timeout : 30m
7683 script : |
7784 cd ${{ secrets.SERVER_TARGET }}
7885 sh docker.sh
Original file line number Diff line number Diff line change 1- FROM nginx:alpine
1+ # CI 会在 GitHub Runner 构建镜像;本地/服务器手动 build 时使用国内可访问的镜像源
2+ FROM docker.m.daocloud.io/library/nginx:alpine
23COPY dist /usr/share/nginx/html
34EXPOSE 80
45CMD ["nginx" , "-g" , "daemon off;" ]
Original file line number Diff line number Diff line change @@ -11,7 +11,14 @@ docker stop "$NAME" 2>/dev/null || true
1111docker rm " $NAME " 2> /dev/null || true
1212docker rmi " $NAME " 2> /dev/null || true
1313
14- docker build -t " $NAME " " $DIR "
14+ IMAGE_TAR=" $DIR /openblog-web.tar.gz"
15+ if [ -f " $IMAGE_TAR " ]; then
16+ echo " Loading pre-built image from CI..."
17+ gunzip -c " $IMAGE_TAR " | docker load
18+ else
19+ echo " Building image locally (manual deploy)..."
20+ docker build -t " $NAME " " $DIR "
21+ fi
1522
1623docker run -d \
1724 -p " ${HOST_PORT} :80" \
You can’t perform that action at this time.
0 commit comments