Aplication properties a "docker run".

Aplication properties a "docker run".
JS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
1

Hej.

W application.properties mam taką linię

Kopiuj
spring.data.mongodb.uri=${MONGO_URL:mongodb://localhost:27017/dev}

Następnie zbudowałem obraz aplikacji za pomocą Dockerfile

Kopiuj
FROM adoptopenjdk/openjdk11:jdk-11.0.2.9-slim
WORKDIR /opt
ENV PORT 8080
EXPOSE 8080
COPY target/*.jar /opt/app.jar
ENTRYPOINT exec java $JAVA_OPTS -jar app.jar

Chciałbym się dowiedzieć jak działa dokładnie ta linia

Kopiuj
spring.data.mongodb.uri=${MONGO_URL:mongodb://localhost:27017/dev}

Przy wywołaniu komendy

Kopiuj
docker run \
  --name=knote-java \
  --rm \
  --network=knote \
  -p 8080:8080 \
  -e MONGO_URL=mongodb://mongo:27017/dev \
  knote-java

Czy wtedy zamienia się ona w

Kopiuj
spring.data.mongodb.uri=mongodb://mongo:27017/dev

?

Chodzi mi o to, że za pomocą -e w komendzie docker run można tam wrzucać dynamicznie swoje zmienne, a w przypadku braku -e zostaje domyślna wartość

Kopiuj
spring.data.mongodb.uri=mongodb://localhost:27017/dev

a

Kopiuj
${MONGO_URL:

jest pomijane.

azalut
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1129
4

nie wiem czy o to pytasz, ale w skrócie - tak;
jak do obrazu Dockerowego podasz zmienna srodowiskowa i ja ustawisz to ${NAZWA_ZMIENNEJ} w springowych plikach .properties czyta zmienną srodowiskową o nazwie NAZWA_ZMIENNEJ
jeśli byś jej nie ustawił to dostaniesz wartość domyślną, czyli to po dwukropku - mongodb://localhost:27017/dev

JS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
1

Dzięki bardzo za odpowiedź! O to mi chodziło!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.