Docker + spring boot + win10

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?

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"]
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:

docker run -p 8081:8081 --name carsdaw_rest_api carsdaw_rest_api:latest
docker run -p 8082:8082 --name carsdaw_repairs carsdaw_repairs:latest
1

Dodaj oba do wspólnej sieci w dockerze.

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ą

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.

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

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

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