Język Frankfurt nad Menem, Niemcy

Wdróż Java na Nodion

Nodion rozpoznaje projekt Java na podstawie pom.xml, build.gradle albo wrappera Maven lub Gradle. Buildpack Java buduje go z JDK Temurin, pomija testy i uruchamia największy plik jar poleceniem java -jar na JRE Temurin, więc JDK nie trafia do obrazu uruchomieniowego (run image). Aplikacja działa we Frankfurcie nad Menem, obok zarządzanej bazy danych PostgreSQL, jeśli jej potrzebujesz.

Wdróż na Nodion ›

od 1 EUR / mies.

Do 15 € środków na start przy rejestracji

Wykrywane po
pom.xml, build.gradle(.kts), mvnw lub gradlew
Start
java -Dserver.port=$PORT -jar z największym plikiem jar
Java
Temurin 11, 17, 21 (domyślnie), 25, 26, 27
Region
EU Central (Frankfurt)

Wdróż Java krok po kroku

  1. Dodaj wrapper Maven lub Gradle do repozytorium Gdy jest gradlew, Nodion uruchamia ./gradlew build -x test --no-daemon; gdy jest mvnw, uruchamia ./mvnw -B -DskipTests clean package. Projekt z pom.xml bez wrappera jest budowany Mavenem dostarczanym przez Nodion. Budowanie projektu Gradle bez gradlew kończy się błędem, więc utwórz wrapper poleceniem gradle wrapper i zrób jego commit razem z katalogiem gradle/wrapper. Podczas wdrożenia testy są pomijane; uruchamiaj je w CI.
  2. Przypnij wersję Javy Bez przypiętej wersji Nodion buduje i uruchamia aplikację z Javą 21. Jeśli potrzebujesz innej wersji, podaj ją w system.properties. Ustawienia toolchainu w pom.xml lub w Twoim buildzie Gradle nie są odczytywane, więc utrzymuj je zgodne z tym plikiem. system.properties
    java.runtime.version=25
  3. Nasłuchuj na porcie PORT Nodion ustawia zmienną PORT dla procesu web i przekazuje ją do JVM jako -Dserver.port, co wystarcza dla Spring Boot. Inne frameworki albo Twój własny serwer odczytują PORT samodzielnie i nasłuchują na 0.0.0.0.
    int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080"));
  4. Utwórz aplikację W dashboardzie utwórz aplikację ze swojego repozytorium GitHub, GitLab, Bitbucket lub Gitea, wybierz branch, region EU Central i rozmiar z co najmniej 1 GB pamięci. Pozostaw strategię buildu Buildpacks; jeśli w repozytorium jest Dockerfile, formularz wybiera zamiast niej Dockerfile.
  5. Podłącz bazę danych i uruchom migracje W zakładce Environment podłącz bazę danych PostgreSQL z tego samego regionu. DATABASE_URL to URL postgres://, a nie URL JDBC, więc przekaż też host, port, nazwę bazy danych, użytkownika i hasło jako zmienne o własnych nazwach i zbuduj z nich URL JDBC, tak jak pokazuje przewodnik po Spring Boot. Migracje uruchamiane przy starcie (Flyway, Liquibase) nie wymagają niczego więcej; każde inne polecenie może działać z linii release: w pliku Procfile, raz na build, zanim wystartuje nowa wersja.

Warto wiedzieć

  • PamięćJVM domyślnie dostaje JAVA_TOOL_OPTIONS=-XX:MaxRAMPercentage=80.0, więc sterta (heap) może zająć większość pamięci instancji. Ustaw JAVA_TOOL_OPTIONS samodzielnie, aby to zastąpić, albo JAVA_OPTS, aby dodać flagi do polecenia startowego. Większość aplikacji webowych na JVM potrzebuje 1 GB lub więcej.
  • Który plik jar jest uruchamianyNodion uruchamia największy plik jar leżący bezpośrednio w target/ lub build/libs/ i pomija pliki jar -plain, -sources i -javadoc. W buildzie wielomodułowym wykonywalny plik jar leży w katalogu modułu; uruchom go linią web: w pliku Procfile i sam przekaż port.
  • Quarkus i inne frameworki-Dserver.port konfiguruje tylko Spring Boot. Quarkus, Micronaut i inne frameworki potrzebują własnego ustawienia portu na podstawie PORT. Domyślny fast-jar Quarkusa w target/quarkus-app/ nie jest wykrywany: uruchom go linią w pliku Procfile, na przykład web: java -Dquarkus.http.port=$PORT -jar target/quarkus-app/quarkus-run.jar, albo zbuduj uber-jar.

Czym Nodion zajmuje się za Ciebie

  • Wdrożenia bez przestojów Wypchnij zmiany do swojej gałęzi, a Nodion zbuduje nowy release. Ruch przełącza się, gdy nowe instancje przejdą health check; nieudany release nie wpływa na działającą wersję. Aplikacje z lokalnym wolumenem są natomiast uruchamiane ponownie, bo dysk należy do jednej instancji.
  • Bazy danych obok aplikacji Zarządzane PostgreSQL, pgvector, MySQL, Valkey i ClickHouse w tym samym regionie. Podłączone bazy danych trafiają do aplikacji jako DATABASE_URL, REDIS_URL lub CLICKHOUSE_URL.
  • Środowiska podglądu dla pull requestów Włącz środowiska podglądu, a każdy pull request z Twojego repozytorium dostanie własną aplikację z własnym adresem URL i nowymi, pustymi bazami danych, tworzoną automatycznie lub ręcznie. Forki i pull requesty od botów są pomijane.
  • Workery, zadania cron i skalowanie Uruchamiaj workery jako dodatkowe procesy tej samej aplikacji, planuj zadania w zakładce Cron i skaluj każdy proces do 16 instancji.
  • Etap release W przypadku buildpacków linia release: w Procfile uruchamia się przy każdym nowym buildzie. Aplikacje z Dockerfile, a także ponowne wdrożenia i rollbacki do wcześniejszego obrazu, korzystają z polecenia release ustawionego w samej aplikacji, które ma też pierwszeństwo przed linią z Procfile. W przypadku stron statycznych krok release działa w obrazie zawierającym tylko zbudowane pliki.
  • Logi i metryki W dashboardzie znajdziesz logi z builda, release'u i działania aplikacji oraz metryki CPU, pamięci, dysku i sieci dla każdej instancji.
  • Domeny i HTTPS Domyślna nazwa hosta z HTTPS od pierwszego wdrożenia; Twoje własne domeny automatycznie dostają certyfikaty.

Warto przeczytać

Java na Nodion: pytania i odpowiedzi

Których wersji Javy mogę używać?

Temurin 11, 17, 21, 25, 26 i 27. Bez przypiętej wersji dostajesz 21. Ustaw java.runtime.version w system.properties; ustawienia toolchainu Maven i Gradle nie są odczytywane.

Czy moje testy są uruchamiane podczas wdrożenia?

Nie. Gradle buduje z -x test, a Maven z -DskipTests, dzięki czemu wdrożenia pozostają szybkie. Uruchamiaj testy w CI, zanim zrobisz merge.

Czy projekty Kotlin i Scala działają?

Tak, o ile da się je zbudować przez Maven lub Gradle i powstaje wykonywalny plik jar. Projekty sbt nie są wykrywane; dla nich użyj Dockerfile.

Gdzie działa moja aplikacja Java?

W regionie EU Central we Frankfurcie nad Menem (Niemcy). Build, rejestr, aplikacja oraz jej bazy danych, wolumeny, buckety, logi i metryki pozostają w tym regionie, a API i warstwa sterowania (control plane) Nodion są hostowane w Niemczech. Nodion GmbH ma siedzibę w Stuttgarcie.

Czy mogę wykorzystywać Java zgodnie z RODO?

Nodion zapewnia do tego podstawy: Nodion GmbH ma siedzibę w Stuttgarcie (Niemcy), w regionie Frankfurt nad Menem aplikacja, jej bazy danych i wolumeny działają w Niemczech, a umowę powierzenia przetwarzania danych (DPA, art. 28 RODO) zawierasz elektronicznie w dashboardzie. To, czy Twoje wdrożenie spełnia wymogi RODO, zależy też od tego, jak skonfigurujesz aplikację i jak z niej korzystasz.

Ile kosztuje uruchomienie Java na Nodion?

Instancja aplikacji kosztuje od 1 EUR miesięcznie. Konfiguracja z ramki kosztuje 5.50 EUR miesięcznie: Aplikacja 4 EUR, PostgreSQL 1.50 EUR. Ceny są podane netto, a rozliczenie następuje co do sekundy. Większe rozmiary lub więcej instancji możesz wybrać w dowolnym momencie.

Czy mogę użyć własnej domeny dla mojej aplikacji Java?

Tak. Każda aplikacja dostaje domyślną nazwę hosta z HTTPS. Własną domenę dodasz w zakładce Domains aplikacji, a certyfikat TLS jest wystawiany i odnawiany automatycznie.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.