Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
#devops #docker

Cześć Mirki I Mirabelki
Uczę się dokera I mam pytanie co robię nie tak chcę uruchomić aplikację w kontenerze python(flask) + redis. Aplikacja która ma wyświetlić jedynie ilość odwiedziń na stronie.
Aplikacja się uruchamia redis też bo widzę w logach ale aplikacji nie mogę wyświeltić w przeglądarce na localhost nic nie ma. Porty są otwarte. Domyślame się że problem może leżeć w samym docker-compose ponieważ nie mam zamontowanego volumena który by wskazywał na pliki aplikacji ale jest to tylko mój domysł.
Próbowałem volumes: .:. ale nie działa. W zadaniu chodzi o to żeby aplikacja była w katalogu /
Ktoś może podrzucić jakiś pomysł?
Linki do dockerfila docker-compose I log

https://codeshare.io/OdJkDr
https://codeshare.io/BAgVzK
https://codeshare.io/QnOmPx

Będę wdzięczny za każde info.
  • 8
Wydaje mi się, że w konteneryzacji chodzi o to, żeby jeden Dockerfile odpowiadał jednej usłudze. W docker-compose dobrze ustawiasz dwa serwisy, ale korzystanie z jednego pliku to zły pomysł.

To co masz w tym Dockerfile to tzw. Multistage build. Ona najpierw tworzy jedną usługę, kopiuje do kontenera pliku, następnie wszystko oprócz tych plików czyści i tworzy nowy build z tamtymi plikami. W tym środowisku chyba nie zadziała python, bo finalnie zostaje tam
via Wykop Mobilny (Android)
  • 2
@Dbzdur @panDocent hej bo nie odpisałem sorry
Co pomogło wywalenie z Dockerfila redisa
Poszedł do docker-compose plus dorzuciłem tam dwie zmienne środowiskowe
REDISHOST: redis i
REDIS
PORT: 6379
Ponieważ aplikacja napisana we flasku ogarniała dane o Redis że zamiennych środowiskowych.

Jak rozumiem wcześniej źle ogarniałem multi stage w Dockerfilu.
Dzięki za pomoc