Sorunuzu cevaplamak için - v3 ile imkansız - aşağıdaki bölüme bakın. v3 ardıl olarak kullanılmayacaktır (aynı zamanda docker tarafından resmi bir beyanname), “sürü vakalarında” kullanılacaktır.
Bununla birlikte, yapmanız gereken, adlandırılmış birimleri kullanmaktır.
Sen 3.2 tanıtılan uzun sözdizimi kullanılarak bu kolaylaştırabilirsiniz bu
docker volume create --name volume1 -o type=none -o device=/home/$USER/projects/01 -o o=bind
gibi konak-bağlama hacimleri ile birleştirebilirsiniz: https://docs.docker.com/compose/compose-file/#long-syntax-2 böylece de ana bilgisayarda adlandırılmış hacmi + bağlama tanımlayabilirsiniz liman işçisi-oluşturma dosya örnek:
services:
full-tests:
volumes:
- type: volume
source: ../
target: /opt/project
- type: volume
source: ../../../ext-libs
target: /opt/ext-libs
veya kısaca size olduğu gibi
services:
full-tests:
volumes:
- ../:/opt/project
- ../../../ext-libs:/opt/ext-libs
Ne yapamazsınız, uzun-sözdizimini en üst düzey "birimler" tanımının altına koyarak, bu birime bir ad verin ve hizmetlerde birimler bölümünde yeniden kullanın - bu mümkün değil. Bunu yapmak için, bir
volumes:
project:
external: true
third-party:
external: true
kullanacağı Sonra
yukarıda ana hatlarıyla gibi bir bağlama seçeneği ile bu birimleri oluşturmak için cli üzerinde sözdizimi "liman işçisi hacmi yaratmak" kullanmak ancak olsun asla ne volumes_from sizin için burada yaptığını
v3 v2, onun alternatif bir halefi olmadığından v3 içinde volumes_from hiçbir eşdeğer yoktur
- yorumumu ve kaynakları burada https://github.com/rancher/rancher/issues/3316#issuecomment-310889283
01 bakın
Özetle - volumes_from ve birimlerde volumes_from durumunda bir çakışma var, yanlış alanda yanlış yoldan/yanlış yoldan kullanıldı.
a) veri genelinde yığın yükseltmeleri (aşağı + yukarı), adlı kıracağı hacimleri kalıcı olmasını istiyorsanız - ve 2+ hizmetler bu paylaşmaya ihtiyacı varsa, şimdi, sadece volumes:
kullanarak bu adlandırılmış birimini bağlamaya.
b) olsa değil verileri (yığın yükseltmeleri üzerinde devam etmek istiyorum yaparsanız örneğin kaynak kodu ve görüntü aslında bir olağan uygulamasında bir gibi bir yükseltmeleri bu) içerdiğinden + httpd/vekil senaryo, sen bunun için bir anon hacmi oluşturacaktır Dockerfile'da /var/www
Volume /var/www
kullanarak ve daha sonra httpd
hizmetine yüklemek için volumes_from kullanın.b ile
ana nokta, yığın yükseltmeleri üzerinde, anon hacmi (anon kapları kaldırır aşağı liman işçisi-oluşturmak `fakat olanları adında değil) çıkarılır ve haliyle yükseltme, sahip işler olacak olan yeni bir kod temeli kodu o olacak bindirme "taze" görüntü üzerinde kod temeli/yeni adlandırılmış hacmine özellikte olduğu ve size ilk yükseltme üzerinde büyük sürpriz verecektir adlı hacimleri ile aynı yapmaya çalışıyor
konteyner, böylece yükseltmeden sonra eski kod tabanı üzerinde çalışacaksınız.
Bazı ipuçları: https://github.com/moby/moby/issues/19990 – Borek
uygun v2 şekilde eşyalarını, –
@EugenMayer güncellenmiş bir v1 yol yazınız. – Borek