Compose: Tambahkan opsi tanpa cache ke build docker-compose

Dibuat pada 2 Mar 2015  ·  13Komentar  ·  Sumber: docker/compose

Akan berguna jika seseorang bisa melakukan ini
docker-compose build service1 service2 --no-cache

Komentar yang paling membantu

Baru sadar sintaksnya adalah
docker-compose build --no-cache service1 service2

Semua 13 komentar

Baru sadar sintaksnya adalah
docker-compose build --no-cache service1 service2

Aku sedang mencari ini!!

Inilah cara bersih saya untuk membangun kembali tumpukan penulisan saya

cd (ke DIR penulisan Anda)

 docker-compose rm --all &&
 docker-compose pull &&
 docker-compose build --no-cache &&
 docker-compose up -d --force-recreate &&

Masuk akal? Saya mencari praktik terbaik di sini :)

+1
Apakah --force-recreate diperlukan?

+1
Saya pikir --force-recreate adalah pilihan terbaik

--force-recreate tidak diperlukan, karena semua container baru saja dihapus.

Jika Anda ingin menghapus _everything_, down lebih baik daripada rm , karena itu juga dapat menghapus volume dan jaringan.

$ docker-compose down -h
Stops containers and removes containers, networks, volumes, and images
created by `up`.

By default, the only things removed are:

- Containers for services defined in the Compose file
- Networks defined in the `networks` section of the Compose file
- The default network, if one is used

Networks and volumes defined as `external` are never removed.

Usage: down [options]

Options:
    --rmi type          Remove images. Type must be one of:
                        'all': Remove all images used by any service.
                        'local': Remove only images that don't have a custom tag
                        set by the `image` field.
    -v, --volumes       Remove named volumes declared in the `volumes` section
                        of the Compose file and anonymous volumes
                        attached to containers.
    --remove-orphans    Remove containers for services not defined in the
                        Compose file

Saya menggunakan ini sejak 3 bulan dan sangat kuat untuk kebutuhan saya.
Saya tidak ingin menghapus: jaringan, volume, dan gambar

        echo && echo "PikWi says: docker-compose stop" && \
    docker-compose stop && \
        echo "PikWi says: docker-compose rm ..." && \
    docker-compose rm -f --all && \    
        echo "PikWi says: docker-compose pull" && \
    docker-compose pull && \
        echo "PikWi says: docker-compose build ..." && \
    docker-compose build --no-cache && \
        echo "PikWi says: docker-compose up ..." && \
    docker-compose up -d --force-recreate --remove-orphans

Saya akan senang menggunakan sesuatu yang lebih pendek atau lebih bersih. Saya semua praktik terbaik :)

Bersulang!

--no-cache tidak berfungsi.... apa alternatifnya --force-rebuild terus menggunakan cache :(

@julianfrank Tidak yakin apa yang Anda maksud dengan --no-cache does not work tapi mungkin Anda menjalankannya sebagai
docker-compose build SERVICE_NAME --no-cache
kapan sebenarnya harus docker-compose build --no-cache SERVICE_NAME ?

Ketika langkah-langkahnya sama di berbagai layanan yang sedang dibangun, itu masih menggunakan cache dari wadah yang baru saja dibuat di skrip sebelumnya...Menemukan alternatif untuk menggunakan langkah yang sama ketika saya ingin menggunakan cache dan mengubah urutan untuk memaksa melewatkan cache penggunaan...

jika Anda disalahgunakan oleh cache dan alih-alih tidak menggunakan cache, Anda memasukkan perintah baru di file buruh pelabuhan untuk memaksa memperbarui lapisan cache kirim jempol ke atas, penanganan cache di buruh pelabuhan memerlukan refactor ... atau benar-benar berfungsi membersihkan lapisan cache

Memang, itu tidak berhasil ...
Anda dapat membuat semua perubahan pada Dockerfile untuk suatu layanan, dan tidak ada refleksi pada docker-compose build --no-cache

docker-compose up -d --build --no-deps web akan membangun kembali wadah untuk layanan bernama "web" di docker-compose.yml Anda. Setelah pembangunan kembali selesai, itu akan memulai kembali wadah yang ditentukan.

--no-deps akan membatasi pembangunan kembali ke nama layanan yang ditentukan dalam perintah.

Selain itu, perintah ini akan membangun kembali wadah jika Anda menyalin file ke dalam wadah dan salah satu file yang Anda salin telah berubah - seperti requirements.txt

untuk diketahui
docker-compose up --force-recreate --build

Tampaknya tidak ada opsi --no-cache untuk perintah naik
Sepertinya force-recreate tidak menggunakan opsi ini. Mohon koreksi saya jika saya salah!

Jadi pendekatan terbaik bagi saya untuk melakukan ini ...

Perintah pembuatan ulang penulisan utama untuk saya

Menghapus wadah dan gambar > membangun gambar tanpa membangun cache > menyusun docker hingga terlepas > ikuti log (sehingga Anda dapat ctrl+c keluar darinya)

docker-compose build --force-rm --no-cache && docker-compose up --detach && docker-compose logs -f

Jendela:
docker-compose build --force-rm --no-cache ; docker-compose up --detach ; docker-compose logs -f

Apakah halaman ini membantu?
0 / 5 - 0 peringkat