使用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

posted @ 2026-08-02 14:21  超级无敌大帅比  阅读(1)  评论(0)    收藏  举报