Docker + spring boot + win10

Docker + spring boot + win10
DA
  • Rejestracja:około 15 lat
  • Ostatnio:10 miesięcy
0

Mam dwie apki na spring boot oraz Docker Desktop zainstalowany na win10. Poniżej wrzucam dwa Dockerfile z tych aplikacji. Problem jest taki,że te aplikację się nie widzą. Odzielnie działają ok ale jezeli uderzam na endpoint, który przechodzi przez obie dostaje timeout. W jaki sposób to działa czy potrzebuje coś dodatkowo ustawić żeby się widziały i można było uruchamiać na http://localhost:8081 i http://localhost:8082?

Kopiuj
FROM adoptopenjdk/openjdk11:alpine-jre
COPY build/libs/*.jar CarsdawRestApi-0.0.1-SNAPSHOT.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/CarsdawRestApi-0.0.1-SNAPSHOT.jar"]
Kopiuj
FROM adoptopenjdk/openjdk11:alpine-jre
COPY build/libs/*.jar CarsdawRepairs-0.0.1-SNAPSHOT.jar
EXPOSE 8082
ENTRYPOINT ["java","-jar","/CarsdawRepairs-0.0.1-SNAPSHOT.jar"]

uruchamiam tak:

Kopiuj
docker run -p 8081:8081 --name carsdaw_rest_api carsdaw_rest_api:latest
docker run -p 8082:8082 --name carsdaw_repairs carsdaw_repairs:latest
edytowany 1x, ostatnio: davyd
DamianSn
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:52
1

Dodaj oba do wspólnej sieci w dockerze.

DA
  • Rejestracja:około 15 lat
  • Ostatnio:10 miesięcy
0
DamianSn napisał(a):

Dodaj oba do wspólnej sieci w dockerze.

ok czyli rozumiem,że z defaultu to nie jest ta sama sieć i dlatego odzielnie działają poprawnie a razem się nie widzą

DamianSn
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:52
2
davyd napisał(a):
DamianSn napisał(a):

Dodaj oba do wspólnej sieci w dockerze.

ok czyli rozumiem,że z defaultu to nie jest ta sama sieć i dlatego odzielnie działają poprawnie a razem się nie widzą

Dokładnie. Każdy z niech działa w osobnej sieci. Ty jednie upubliczniasz ich wybrane porty do swojej lokalnej sieci. Najlepiej zróbić sobie docker-compose, tam nazwać kontenery i potem w apkach korzystać z tej nazwy jako nazwy hosta. Dodatkowo będziesz operować od razu na obu.

damian-szkoladockera
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Mielec
  • Postów:20
0

@davyd

Możesz zrobić tak:

docker network create -d bridge my-springboot-network
docker run -p 8081:8081 --network my-springboot-network --name carsdaw_rest_api carsdaw_rest_api:latest
docker run -p 8082:8082 --network my-springboot-network --name carsdaw_repairs carsdaw_repairs:latest

Dzięki temu możesz komunikować się z jednego do drugiego kontenera za pomocą nazwy.

Np. wewnątrz kontenera carsdaw_rest_api możesz zrobić pinga do carsdaw_repairs


edytowany 1x, ostatnio: damian-szkoladockera
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:dzień
  • Postów:1875
1

Możesz też użyć docker-compose. Do tego odpalasz wszystkie usługi jednym poleceniem :)
https://github.com/spring-petclinic/spring-petclinic-microservices/blob/master/docker-compose.yml


”Engineering is easy. People are hard.” Bill Coughran

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.