GEDOPLAN
ContainerJavaQuarkusJakarta EE (Java EE)

Quarkus 3.22 bringt die Compose Dev-Services

ContainerJavaQuarkusJakarta EE (Java EE)
ai generated 7889788 1280

Der Dev-Service in Quarkus bietet dem Entwickler eine sehr komfortable Möglichkeit die lokale Entwicklung zu beschleunigen. Nach einer Änderung des Quellcodes werden die angepassten Teile automatisch neu bereitgestellt und man kann die Anpassungen sofort testen. Darüber hinaus stehen in den Dev-Services weitere Unterstützung bei der Entwicklung zur Verfügung.

Sobald man bspw. einen JDBC-Treiber für seine Persistenz-Schicht einsetzt, wird je nach Treiber eine entsprechende Datenbank automatisch über Testcontainers zur Verfügung gestellt. Das funktioniert für sehr viele weitere Technologien wie bspw. Messaging über Kafka oder AMQP, aber auch für die Security in Form von Keycloak. Diese Möglichkeiten sind schon sehr vielfältig, dennoch wurden in vielen Projekten zusätzlich auch weitere Docker-Container insbesondere über Docker Compose für die lokale Entwicklung eingesetzt.

Mit dem Release 3.22 wurde diese Möglichkeit mit den Dev-Services verbunden. Es lassen sich jetzt über eine compose-devservices.yml diese Container zusätzlich mit integrieren. Damit müssen diese Container nicht mehr separat gestartet werden. Die folgende yml-Datei konfiguriert eine PostgreSQL und einen mailhog-Container.

services:
  db:
    image: postgres:17
    healthcheck:
      test: pg_isready -U gedoplan -d education
      interval: 5s
      timeout: 3s
      retries: 3
    ports:
      - '5432'
    environment:
      POSTGRES_USER: gedoplan
      POSTGRES_PASSWORD: secret09
      POSTGRES_DB: education
    volumes:
      - ./conf:/docker-entrypoint-initdb.d
      - edu_postgres_data:/var/lib/postgresql/data

  mailhog:
    image: mailhog/mailhog
    ports:
      - "1025"
      - "8025"
    labels:
      io.quarkus.devservices.compose.config_map.port.1025: quarkus.mailer.port

volumes:
  edu_postgres_data:

Die PostgreSQL Datenbank wird von Quarkus automatisch mit der Datasource verbunden. Quarkus erkennt über das verwendete postgres-Image, dass keine vorkonfigurierte Datenbank gestartet werden muss. Bei mailhog handelt es sich um einen Dienst, der nicht automatisch mit zur Verfügung gestellt werden würde. Wird in Quarkus die Mail-Extension verwendet, wird in den Dev-Services automatisch in den Mock-Modus umgeschaltet. Damit werden alle versendeten Mails im Quarkus-Log ausgegeben und intern gespeichert. Das kann man in den application.properties deaktivieren. Dann benötigen wir jedoch eine Konfiguration für einen Mailserver. Diesen starten wir als zusätzlichen Container und verbinden den Port 1025 mit der Quarkus-Konfiguration quarkus.mailer.port.

Ich glaube durch die Integration von Docker Compose in die Dev-Services ist es in vielen Projekten einfacher eine lokale Entwicklungsumgebung bereitzustellen und damit die Entwicklung nochmals zu optimieren. Eine ausführliche Dokumentation findet ihr hier: https://quarkus.io/guides/compose-dev-services.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!