Wpis z mikrobloga

Z #docker jestem dno (czas się w końcu nauczyć) i w związku z tym mam 3 pytania :-)

Mam w docker-compose 3 kontenery:
1. php
2. nginx
3. sql

Dla 1 i 3 jest volumen na /var/www
Dla kontenera php mam w dockerfile:
COPY ./kodaplikacji /var/www

Pytanie 1:
Przy kolejnym docker-compose up --build wszystko się ładnie przebudowuje - ale jeśli zmienił się kod aplikacji to nowy kod nie jest ładowany - w wolumenie cały czas siedzi stary kod. Jedynym wyjściem jest usunięcie volumenu i utworzenie go od nowa..

Pytanie 2:
W jaki sposób do /var/www/.env przekazać np. hosta bazy danych z kontenera 3?
W .env mam:

DB
HOST=1.1.1.1 (oczywiście ip byle jaki)
Co zrobić, aby tutaj widoczny był host udostępniany przez kontener 3?

Pytanie 3:
Jak do takiego pliku .env przepisać coś z pliku .env używanego przy docker-compose?
  • 1
1) Volumeny w docker-compose.yaml działają w taki sposób, że po starcie kontenera "wywalają" wszystko co było w nim wcześniej skopiowane w Dockerfile (np. ten copy plików do /var/www) i podpinają tam Twoje obecne pliki z hosta. Czyli nie, nie musisz nic kasować, bo tak działają wolumeny i jest git. Ten copy służy do tego, że gdy będziesz stawiać aplikację gdzieś w "chmurze" to tam nie będziesz mieć już dynamicznych wolumenów tylko kod