Tek bir düğümü yeniden başlatmanın diğer yanıtları hedeftedir docker-compose restart worker
. Bu, kapsayıcıyı geri döndürür, ancak ayrı olarak yeniden oluşturmuş olsanız bile herhangi bir değişiklik içermez. Manuel olabilir stop
, rm
, create
ve start
fakat daha kolay çok yöntem vardır.
Kodunuzu güncellediyseniz, derlemeyi şu şekilde tek bir adımda yapabilir ve yeniden yükleyebilirsiniz:
docker-compose up --detach --build
Bu, ilk olarak görüntülerinizi değiştirilen herhangi bir koddan yeniden oluşturacaktır; bu, önbellek yeniden kullanıldığından beri değişiklik yoksa hızlıdır. Ve sonra sadece değiştirilen kapların yerini alır. İndirdiğiniz görüntüler eskiyse, yukarıdaki komutun önüne geçebilirsiniz:
docker-compose pull
Önce değiştirilen görüntüleri indirmek için ( up
yukarıdaki gibi bir komut çalışana kadar kaplar yeniden başlatılmaz ). İlk duruşun yapılması gereksizdir.
Ve bunu tek bir hizmet için yapmak için, belirtmek istediğiniz hizmetlerle yukarı veya çekme komutunu izleyin, örn:
docker-compose up --detach --build worker
İlk seçeneğin kısa bir örneği olan Dockerfile, kodun sıkça değişen bölümlerini sonuna yakın tutacak şekilde yapılandırılmıştır. Aslında, pip install
bu dosya nadiren değiştiği için gereksinimler ayrı ayrı çekilir . Ve nginx ve redis kapları güncel olduğundan yeniden başlatılmadılar. Tüm süreç için toplam süre 6 saniyenin altındaydı:
$ time docker-compose -f docker-compose.nginx-proxy.yml up --detach --build
Building counter
Step 1 : FROM python:2.7-alpine
---> fc479af56697
Step 2 : WORKDIR /app
---> Using cache
---> d04d0d6d98f1
Step 3 : ADD requirements.txt /app/requirements.txt
---> Using cache
---> 9c4e311f3f0c
Step 4 : RUN pip install -r requirements.txt
---> Using cache
---> 85b878795479
Step 5 : ADD . /app
---> 63e3d4e6b539
Removing intermediate container 9af53c35d8fe
Step 6 : EXPOSE 80
---> Running in a5b3d3f80cd4
---> 4ce3750610a9
Removing intermediate container a5b3d3f80cd4
Step 7 : CMD gunicorn app:app -b 0.0.0.0:80 --log-file - --access-logfile - --workers 4 --keep-alive 0
---> Running in 0d69957bda4c
---> d41ff1635cb7
Removing intermediate container 0d69957bda4c
Successfully built d41ff1635cb7
counter_nginx_1 is up-to-date
counter_redis_1 is up-to-date
Recreating counter_counter_1
real 0m5.959s
user 0m0.508s
sys 0m0.076s