跳到内容

元数据卡

  • 前置知识:CI/CD 基本概念(上一页)
  • 预计时间:15 分钟
  • 完成标志:能在本地走通代码→容器化的全流程

热身(5 分钟)

从头创建本章的 hello-atlas 项目,在本地跑起来:

  1. ch08-dev-to-deploy 的步骤创建目录结构和文件
  2. 运行 mvn clean package -DskipTests
  3. 运行 java -jar target/hello-atlas-1.0.0.jar
  4. 访问 localhost:8080 看到欢迎页面

挑战(15 分钟)

  1. 编写 Dockerfile 将 hello-atlas 应用容器化
  2. docker build -t hello-atlas:v1 . 构建镜像
  3. docker run -d -p 8080:8080 --name hello-atlas hello-atlas:v1 启动容器
  4. 确认 localhost:8080 能访问
  5. docker logs hello-atlas 查看启动日志

排障

场景 1:端口冲突

你在本地调试时,java -jar 占着 8080,docker run 也占着 8080——报错 "Address already in use"。

bash
# 找到谁占着 8080
sudo lsof -i :8080

# 方案 1:杀掉它
kill -9 <PID>

# 方案 2:换个端口启动 Docker
docker run -d -p 8081:8080 hello-atlas:v1

场景 2:我改了代码,但容器里还是旧的

你可能忘记重新构建镜像了。改了代码后需要:

bash
# 重新构建
docker build -t hello-atlas:v2 .

# 停止旧容器
docker stop hello-atlas && docker rm hello-atlas

# 启动新容器
docker run -d -p 8080:8080 --name hello-atlas hello-atlas:v2

容器不会自动感知代码变化——你需要重新 build。


下一站:变量村

工坊的师傅拍了拍你的肩:"出门朝东走,有个叫变量村的地方,那边有位老陈师傅——他能教你真本事。"

第一卷:编程之基,从那里开始。

前往第一卷 →

Built with VitePress | Software Systems Atlas