使用docker部署到服务器
1.ftp传送工具
terminus
2.因为docker打包下来的镜像没办法push,好像是代理网络问题,于是采用在本地打包好的方法:
1. 修改代码/配置
每次改完代码或配置后,先确认 .env.local:
# 前端 .env.local — 必须是这个变量名
NEXT_PUBLIC_API_HOST_URL=http://你的服务器公网IP:8091
2. 本地构建镜像
# 后端(只有改后端代码才需要 rebuild)
cd /Users/linanting/IdeaProjects/market-study/market-study-app
docker build --platform linux/amd64 -t nanting/big-market-study-app:1.0 .
# 前端(改了 .env.local 或前端代码就要 rebuild)
cd /Users/linanting/frontProjects/big_market_front_study
docker build --platform linux/amd64 -t nanting/big-market-front-app:1.1 .
--platform linux/amd64必须加,你 Mac 是 arm64,服务器是 amd64,不加会崩。
3. 打包成 tar
cd ~
docker save -o big-market-study-app-amd64.tar nanting/big-market-study-app:1.0
docker save -o big-market-front-app-amd64.tar nanting/big-market-front-app:1.1
4. 上传到服务器
scp big-market-study-app-amd64.tar root@117.72.93.48:/root/
scp big-market-front-app-amd64.tar root@117.72.93.48:/root/
5. 服务器上部署
# 停旧容器
docker compose -f /root/dev-ops/docker-compose-app.yml down
# 加载新镜像
docker load -i /root/big-market-study-app-amd64.tar
docker load -i /root/big-market-front-app-amd64.tar
# 启动
docker compose -f /root/dev-ops/docker-compose-app.yml up -d --pull never
--pull never强制用本地镜像,不尝试从 Docker Hub 拉(反正被墙了)。
6. 验证
# 容器都起来了?
docker ps
# 本地测试
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 # 应该 200
curl -s -o /dev/null -w "%{http_code}" http://localhost:8091 # 应该 404(正常)
然后浏览器打开 http://117.72.93.48:3000

浙公网安备 33010602011771号