Jak zdefiniować yml przy odpalaniu jara dockerem?

0

Jar odpala się z wbudowanym yamlem w ten jar, a nie z tym wskazanym zewnętrznym. Gdzie jest błąd?

w folderze są 3 pliki:

  • application-dev.yml
  • application-prod.yml
  • Dockerfile:
FROM openjdk:14-slim

WORKDIR /app

COPY . .

ARG JAR_FILE
ADD $JAR_FILE app.jar

ENTRYPOINT java -jar app.jar \
    --spring.profiles.active=prod \
	--spring.config.name=application-prod \
    --spring.kafka.bootstrap-servers=$SPRING_KAFKA_BOOTSTRAP_SERVERS \
	--spring.kafka.consumer.group-id=$SPRING_KAFKA_CONSUMER_GROUP_ID \
	--websocket.channel.cryptowat.code=$WEBSOCKET_CHANNEL_CRYPTOWAT_CODE \
	--websocket.channel.cryptowat.resources=$WEBSOCKET_CHANNEL_CRYPTOWAT_RESOURCES
  • docker-compose.yml:
version: '3.8'
services:
      
  myService:
    image: myService:1.1.1
    container_name: myService
    build:
      context: ./myFolder
      dockerfile: Dockerfile
      args:
        JAR_FILE: https://cryptostream.jfrog.io/artifactory/default-maven-virtual/.../myService-1.1.1.jar 
    environment:
      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka-1:9092
      SPRING_KAFKA_CONSUMER_GROUP_ID: cstream-ingester-cryptowat-audiousd
      WEBSOCKET_CHANNEL_CRYPTOWAT_CODE: audiousd
      WEBSOCKET_CHANNEL_CRYPTOWAT_RESOURCES: instruments:9:trades
      SERVER_PORT: 18001
    ports:
      - "18001:18001"
0

Ale o jaki konkretnie yaml Ci chodzi?

Anyway, jak już jest zbudowany jar, to mi się wydaje (choć głowy nie dam), że już po ptakach. Korzystasz ze Spring Boota, co nie? To spróbuj zamiast java -jar robić mvn spring-boot:run

0

zoba:

java -jar app.jar \
    --spring.profiles.active=prod \
    --spring.config.name=application-prod

wg mnie to dziala normalnie tak, ze zapodajesz wlasnie yml o nazwie application-prod.yml tylko czemu nie dziala to w tym dockerfilu?

i odpala się ten application-prod z jara a nie z folderu z jarem

0

A jesteś pewien ze ten yaml w ogóle tam leży w tym dockerze i są do niego uprawnienia?

0

COPY . . nie wystarcza?

0

kolejna sprawa:

jak zmienie --spring.profiles.active=prod na --spring.profiles.active=dev
to dalej profil jest prod.
WTF

może trzeba cały image przebudować, a nie tylko contener odpalic?

TAK, a więc to o to chodzi... ech...
czyli jak zmieniam Dockerfile to, żeby zassał zmiany muszę przebudować cały image.
A jak tylko contener chcę zmienić to muszę w docker-compose.yml zmieniać, ech...

1

jak zmienie --spring.profiles.active=prod na --spring.profiles.active=dev

Jak to robisz w dockerfilu to oczywiście, że musisz obraz przebudować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1