Wpis z mikrobloga

bawię się ECS i napotkałem pewien problem: stworzyłem sobie task definition, w którym chcę uruchomić dockerowe kontenery utworzone z wrzuconych przeze mnie wcześniej na ECR obrazów. Łącznie 6 kontenerów, z czego niektóre są połączone z innymi za pomocą opcji links.
No i problem jest taki że przy uruchamianiu już całego klastra kontenery mi się wysypują, gdyż są uruchamiane w niewłaściwej kolejności (sprawdziłem to w logach na EC2, na którym działa ECS) - po prostu kontenery zależne od innych uruchamiane są przed ich zależnościami.

Tak dokładniej to chodzi o kontener który jest zależny od kontenera zawierającego bazę danych mariadb - docker logs wywala mysql connection error: dial tcp 172.17.0.3:3306: connect: connection refused z oczywistych powodów.

To normalne zachowanie, czy też jakaś opcja konfiguracji mi umknęła? Jak sobie z tym poradzić, by kolejność uruchamiania była odpowiednia? A może powinienem przebudować aplikację, by kolejność uruchamiania kontenerów nie miała znaczenia? chociaż średnio mi się to widzi...
#amazon #backend #aws #cloudcomputing #chmura #devops
  • 3
@Arthes: w 1 task definition daj wszystkie kontenery które mają się widzieć a nie każdy w innym

Poza tym mariadb w kontenerze? Odpal sobie w RDS jakąś mikro instancję, zapłacisz ciut drożej ale masz HA zapewnione + backup + point in time restore
@mmichal: odpalałem w jednym task definition wszystko; teraz tak zerknąłem do kodu mikrousługi zależnej od tego kontenera z bazą by sobie przypomnieć co jest grane i widzę że przy samym uruchomieniu próbuje się połączyć z bazą, a gdy to się nie uda to po prostu aplikacja się wyłącza - chyba problem siedzi w tym, że uruchamianie kolejnych kontenerów "nie czeka" na to aż poprzednie zakończą proces uruchamiania, co? i po prostu