打开 powershell 命令行程序,在项目根目录下执行
docker-compose up -d
将启动数据库、执行数据库更新脚本、启动前端 nginx 服务和后端服务。
-
-d
表示在后台执行,我们在命令行上只能看到Creating atjob_backend_1 ... done
的字样,它表示容器启动成功,但不表示容器内的后端服务已完成启动,要再等几分钟才行。要查看后端容器内的运行日志,可使用命令:docker-compose logs -f backend
-f
参数表示follow
,会一直显示最新的运行日志,不会执行一次就退出。 -
要验证后端服务是否启动成功,可访问 Swagger 在线文档: http://localhost:9003/swagger-ui.html
-
使用命令
docker ps
可查看所有已启动的容器和它们暴露的端口号。
在上一步使用 docker-compose up -d
启动容器后,再使用 docker-compose logs -f backend
监控日志输出,确认 Spring 框架启动完成(运行日志显示 Root WebApplicationContext: initialization completed in xxxxx ms
)。不要关闭命令行程序。
使用你喜欢的 IDE 打开 atjob\backend
目录,修改任意一行代码,保存。稍待几秒钟,容器内的 Spring devtools 插件将检测到代码变更并自动重启 Spring 框架,可通过监控运行日志的输出确认这一点。
有些时候需要彻底重新编译所有后端代码,这时可使用命令
docker-compose up --build backend
该命令在重新编译源码并运行 Spring 服务后会一直显示运行日志,就无需再使用 docker-compose logs -f backend
命令了。
一般情况下可使用 System.out.println()
向控制台输出信息的方式跟踪代码的运行状态。它往往比设置断点、单步调试更节省时间。
如果需要设置断点,虽然也有在 Docker 容器中调试的方法,但毕竟麻烦,还不如直接在本地调试。
-
在本地安装 Java11 和 Maven,不再赘述。
-
使用命令
docker-compose stop backend
停止后端容器。 -
将
application.yml
中的数据源配置修改为:spring: datasource: url: jdbc:p6spy:oracle:thin:@127.0.0.1:9009/ORCLPDB1.localdomain
-
使用
mvn clean install
和mvn spring-boot:run
命令安装依赖、启动 Spring 服务。 -
访问 http://localhost:9003/swagger-ui.html#/%E6%9D%83%E9%99%90%E8%AE%A4%E8%AF%81/loginUsingPOST 测试用户登录 API 是否可成功执行。
-
停止第 4 步启动的 Spring 服务。使用你喜欢的 IDE 启动调试器,设置断点,开始调试。
- 使用
docker-compose up -d
启动 - 使用
docker exec -it atjob_backend_1 bash
进入容器内部的bash
- 在容器内,先
cd /opt/arthas/
,再执行java -jar arthas-boot.jar
如果需要从本地使用 PLSQL Developer 等客户端连接数据库:
-
IP:127.0.0.1
-
端口号:9009
-
数据库服务名:ORCLPDB1.localdomain
-
用户名:atjob
-
密码:atjob