2015-01-15 23 views
8

Docker'da çalışan Wikimedia'ım var. Wikimedia'nın uzantıları, başlangıçta yerleşik uzantıları (bir uzantı = bir alt klasör) içeren extensions/ klasöründe bulunur.Docker'da ana makine klasörünü kapsayıcı klasörüyle nasıl birleştirirsiniz?

Şimdi yeni uzantılar eklemek istiyorum. Bununla birlikte, Dockerfile'ı değiştirmeyi veya mevcut kapsayıcıya yeni bir taahhüt oluşturma seçeneğini tercih etmiyorum.

Kapsayıcıda extension klasörü ile birleştirilecek (üzerine yazılmayacak) ana makine (ör. /home/admin/wikimedia/extensions/) bir klasör oluşturmak mümkün mü? Bu yüzden, yeni uzantıyı kurmak istediğimde, sadece uzantı dosyasını ana bilgisayara kopyalamak istiyorum, uzantıyı /home/admin/wikimedia/extensions/

cevap

8

Sunucunuzdan bir birimi, uzantı klasöründen ayrı bir konuma, daha sonra da başlangıç ​​komut dosyasında kopyalayabilirsiniz. İçindekiler dizininin içeriği. Ev sahibinizi bir kez yeniden inşa etmeniz gerekecektir.

Örneğin

: Bu sorunu aşmanın bir yolu olduğunu

Dockerfile: 
    RUN cp startup-script /usr/local/bin/startup-script 
    CMD /usr/local/bin/startup-script 

startup-script: 
    #!/bin/bash 
    cp /mnt/extensions /path/to/wikipedia/extensions 
    /path/to/old-startup-script [email protected] 

docker run -d -v /home/admin/wikimedia/extensions:/mnt/extensions wikipedia 

, başka yolu uzantıları için ayrı bir veri kabı muhafaza etmek olurdu, o zaman bu montaj ve wikipedia dışında bu koruyacak bir kap. İçindeki tüm uzantılara sahip olmalı.

Öyle gibi bir tane başlatabilirsiniz:

docker run -d -v /home/admin/wikimedia/extensions:/path/to/wikipedia/extensions --name extensions busybox tail -f /dev/null 
docker run -d --volumes-from extensions wikipedia 
+0

mi ''/mnt/benim konakta uzantıları klasörün yolunu extensions''? Başlangıç ​​komut dosyası, kapsayıcı dışındaki dosyaya nasıl erişir? –

+1

/mnt/extensions kapsayıcının içindeki yerini alıyor, docker run komutunu düzgün bir şekilde düzenledim. – Michael

İlgili konular