在本节中,我们将创建一个 Compose 文件以java-docker使用单个命令启动我们的和 MySQL 数据库。我们还将设置 Compose 文件以java-docker在调试模式下启动应用程序,以便我们可以将调试器连接到正在运行的 Java 进程。
petclinic在 IDE 或文本编辑器中打开并创建一个名为docker-compose.dev.yml. 将以下命令复制并粘贴到文件中。
这个 Compose 文件非常方便,因为我们不必键入要传递给docker run命令的所有参数。我们可以使用 Compose 文件声明性地做到这一点。
我们公开端口 8000 并声明 JVM 的调试配置,以便我们可以附加调试器。
使用 Compose 文件的另一个非常酷的功能是我们将服务解析设置为使用服务名称。因此,我们现在可以mysqlserver在我们的连接字符串中使用。我们使用的原因mysqlserver是因为我们在 Compose 文件中命名了我们的 MySQL 服务。
现在,启动我们的应用程序并确认它运行正常。
$ docker-compose -f docker-compose.dev.yml up –build
我们传递–build标志,以便 Docker 编译我们的图像,然后启动容器。如果运行成功,您应该会看到类似的输出:
现在让我们测试我们的 API 端点。运行以下 curl 命令:
$ curl –request GET \\\\
–url http://localhost:8080/vets \\\\
–header \\\’content-type: application/json\\\’
您应该会收到以下回复:
{vetList:[{id:1,firstName:James,lastName:Carter,specialties:[],nrOfSpecialties:0,new:false},{id:2,firstName:Helen,lastName:Leary,specialties:[{id:1,name:radiology,new:false}],nrOfSpecialties:1,new:false},{id:3,firstName:Linda,lastName:Douglas,specialties:[{id:3,name:dentistry,new:false},{id:2,name:surgery,new:false}],nrOfSpecialties:2,new:false},{id:4,firstName:Rafael,lastName:Ortega,specialties:[{id:2,name:surgery,new:false}],nrOfSpecialties:1,new:false},{id:5,firstName:Henry,lastName:Stevens,specialties:[{id:1,name:radiology,new:false}],nrOfSpecialties:1,new:false},{id:6,firstName:Sharon,lastName:Jenkins,specialties:[],nrOfSpecialties:0,new:false}]}