Jawaban lain untuk me-restart satu node ada di target docker-compose restart worker
,. Itu akan memantul wadah itu, tetapi tidak termasuk perubahan, bahkan jika Anda membangun kembali secara terpisah. Anda dapat secara manual stop
, rm
, create
, dan start
, tetapi ada metode lebih mudah.
Jika Anda telah memperbarui kode, Anda dapat melakukan pembuatan dan memuat ulang dalam satu langkah dengan:
docker-compose up --detach --build
Yang pertama akan membangun kembali gambar Anda dari kode yang diubah, yang cepat jika tidak ada perubahan sejak cache digunakan kembali. Dan itu hanya menggantikan wadah yang diubah. Jika gambar yang Anda unduh basi, Anda dapat mengawali perintah di atas dengan:
docker-compose pull
Untuk mengunduh gambar yang diubah terlebih dahulu (wadah tidak akan dimulai ulang hingga Anda menjalankan perintah seperti di up
atas). Melakukan penghentian awal tidak perlu.
Dan untuk hanya melakukan ini untuk satu layanan, ikuti perintah naik atau tarik dengan layanan yang ingin Anda tentukan, misalnya:
docker-compose up --detach --build worker
Berikut adalah contoh cepat dari opsi pertama, Dockerfile disusun untuk menjaga bagian kode yang sering berubah mendekati akhir. Bahkan persyaratan ditarik secara terpisah pip install
karena file itu jarang berubah. Dan karena wadah nginx dan redis mutakhir, mereka tidak direstart. Total waktu untuk seluruh proses di bawah 6 detik:
$ 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