diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
deleted file mode 100644
index 804a6d446..000000000
--- a/.devcontainer/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-ARG VARIANT=17-bullseye
-FROM mcr.microsoft.com/vscode/devcontainers/java:0-${VARIANT}
-
-ARG NODE_VERSION="none"
-RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
-
-ARG USER=vscode
-VOLUME /home/$USER/.m2
-VOLUME /home/$USER/.gradle
-
-ARG JAVA_VERSION=17.0.7-ms
-RUN sudo mkdir /home/$USER/.m2 /home/$USER/.gradle && sudo chown $USER:$USER /home/$USER/.m2 /home/$USER/.gradle
-RUN bash -lc '. /usr/local/sdkman/bin/sdkman-init.sh && sdk install java $JAVA_VERSION && sdk use java $JAVA_VERSION'
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index a732481a5..3aa67afc1 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,32 +1,25 @@
{
- "name": "Petclinic",
- "dockerFile": "Dockerfile",
- "runArgs": [
- "--cap-add=SYS_PTRACE",
- "--security-opt",
- "seccomp=unconfined",
- "--mount",
- "type=bind,source=${env:HOME}/.m2,target=/home/vscode/.m2",
- "--mount",
- "type=bind,source=${env:HOME}/.gradle,target=/home/vscode/.gradle",
- "--env",
- "GRADLE_USER_HOME=/home/vscode/.gradle"
- ],
- "initializeCommand": "mkdir -p ${env:HOME}/.m2 ${env:HOME}/.gradle",
- "postCreateCommand": "sudo chown vscode:vscode /home/vscode/.m2 /home/vscode/.gradle",
- "remoteUser": "vscode",
- "features": {
- "docker-in-docker": "latest"
- },
- "extensions": [
- "vscjava.vscode-java-pack",
- "redhat.vscode-xml",
- "vmware.vscode-boot-dev-pack",
- "mhutchie.git-graph"
- ],
- "forwardPorts": [8080],
- "settings": {
- "java.import.gradle.enabled": false,
- "java.server.launchMode": "Standard"
- }
+ "name": "Java",
+ "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
+ "features": {
+ "ghcr.io/devcontainers/features/java:1": {
+ "version": "21-oracle",
+ "jdkDistro": "oracle"
+ },
+ "ghcr.io/devcontainers/features/azure-cli:1": {},
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {},
+ "ghcr.io/devcontainers/features/github-cli:1": {}
+ },
+
+ "customizations": {
+ "vscode": {
+ "settings": {},
+ "extensions": [
+ "redhat.vscode-xml",
+ "visualstudioexptteam.vscodeintellicode",
+ "vscjava.vscode-java-pack"
+ ]
+ }
+ },
+ "remoteUser": "vscode"
}
diff --git a/build.gradle b/build.gradle
index fa6ff0cef..397f898bc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,6 @@
plugins {
id 'java'
- id 'org.springframework.boot' version '3.3.0'
+ id 'org.springframework.boot' version '3.3.2'
id 'io.spring.dependency-management' version '1.1.5'
id 'org.graalvm.buildtools.native' version '0.10.2'
id 'org.cyclonedx.bom' version '1.8.2'
diff --git a/pom.xml b/pom.xml
index a9bbd2959..c948f9e33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.3.0
+ 3.3.2
petclinic
@@ -221,7 +221,7 @@
spring-boot-maven-plugin
-
build-info
@@ -385,7 +385,7 @@
-
org.eclipse.m2e
@@ -443,4 +443,4 @@
-
\ No newline at end of file
+
diff --git a/readme.md b/readme.md
index 14b3c495f..9dea4591b 100644
--- a/readme.md
+++ b/readme.md
@@ -47,7 +47,7 @@ In its default configuration, Petclinic uses an in-memory database (H2) which
gets populated at startup with data. The h2 console is exposed at `http://localhost:8080/h2-console`,
and it is possible to inspect the content of the database using the `jdbc:h2:mem:` URL. The UUID is printed at startup to the console.
-A similar setup is provided for MySQL and PostgreSQL if a persistent database configuration is needed. Note that whenever the database type changes, the app needs to run with a different profile: `spring.profiles.active=mysql` for MySQL or `spring.profiles.active=postgres` for PostgreSQL.
+A similar setup is provided for MySQL and PostgreSQL if a persistent database configuration is needed. Note that whenever the database type changes, the app needs to run with a different profile: `spring.profiles.active=mysql` for MySQL or `spring.profiles.active=postgres` for PostgreSQL. See the [Spring Boot documentation](https://docs.spring.io/spring-boot/how-to/properties-and-configuration.html#howto.properties-and-configuration.set-active-spring-profiles) for more detail on how to set the active profile.
You can start MySQL or PostgreSQL locally with whatever installer works for your OS or use docker: