2016-04-06 8 views
1

Bu makineyle ilgili olduğunu düşünüyorum, ancak emin değilim. Daha hızlı yerel kalkınma (test yürütme) içinDosyalara zarar veren dolaşık birim hacimleri

[...] 
COPY . /code 
VOLUME /code 
WORKDIR /code 
[...] 

: Ben böyle kaba bir Dockerfile, kodu kopyalar kullanarak bir proje var OSX üzerinde docker 1.10.3 ile en güncel liman işçisi araç kutusunu kullanıyorum biz iki farklı klasörler/dosyaları var gibi görünüyor,

[...] 
volumes: 
     - .:/code 
[...] 

ve Şimdi

docker-compose -f docker-compose.yml -f docker-compose.testing.yml run web py.test 

yürütmek oluşturma dosyasında geçerli dizini monte: kapsayıcıyı çalıştırırken ve vi ile bir dosyaya bakarken, her şey ana bilgisayarda görünüyor. Dosyaları değiştirme ve testlerimizi yürütme (özellikle pytest), python yorumlayıcısının çöpü okumanıza izin verir, böylece testleri gerçekleştiremez.

Örnek

bir dosyanın sonuna (kaba Dockerfile kopyalanan var olan) aşağıdaki gibidir:

post_save.connect(backup_something, sender=SomeSender, dispatch_uid='backup_something') foobar 
this obviously raises an error when executing, so I change it to 

post_save.connect(backup_something, sender=SomeSender, dispatch_uid='backup_something') 

dosya ana bilgisayardan ve konteynerin içinde hem şimdi iyi görünüyor . Pytest'i yürütürken, kopyalanan kodun içeriğini okur, testler yerel olarak benim için kesilir.

Hatta daha değiştirirseniz, bu kadar ne monte dosyayı kopyalanamaz ve bu yüzden rasgele pozisyonlarda şeyler sonları:

File "/code/some_code.py", line 69 
    dispatch_uid='backup_ 
         ^

SyntaxError: EOL dize (kuyruk tarayarak vb doğru sözdizimini gösterirken, orada kesinlikle kod ile kırık hiçbir şey)

Kurulumumuzda bir sorun var mı, yoksa makinem bir şekilde kırılıyor mu? Docker makinesini yeniden başlatmayı ve yeniden oluşturmayı denedim ama bu işe yaramıyor.

+0

Docker Compose deposunda bunu bir sorun olarak göndermenin daha iyi bir şansı olabilir: https: //github.com/docker/compose. Proje üzerindeki bakım uzmanları sizinle birlikte çalışabilir ve bir çevre sorunu, bir kullanıcı sorunu veya gerçek bir hata olup olmadığını anlayabilir. –

+0

Merhaba! Sadece bir yere bir birim yüklediğinizde, bir şekilde –

+0

ilerlediyseniz merak ediyorsanız, klasör kapsayıcının içine monte edilir ve muhafazanın klasörünün yerini alır. Eğer orada dosyaları ADD yaparsanız, o zaman montajı yapın, aslında docker klasörünü lokal monte edilmiş olanla değiştirirsiniz. Bunu aynı zamanda yaparsanız, dosyanızın bozulmasına şaşırmadım. Bu nedenle, birim bağlama ile bir dev resmi ve bir COPY ile bir prod görüntüsü, ancak aynı anda kullanmayın. – MrE

cevap

-2

IOS ile ilgili herhangi bir deneyimim yok, ancak bir union mount yapmış olabilirsiniz.

Böyle bir durum söz konusu ise, dosyalar dosyaları veya bağlama noktalarını taşımak olacaktır, böylece dosyalar gölgelenmeyecektir.

This makale anlamlı olabilir: Garip bir şey varsa dosya sistemi türünü kontrol salt okunur modda bağlamaya çalıştığınızda ve sonra iki katına çıkacak

1

. Yıllar önce ntfs-3g bozma dosyaları ile bir hata oldu, belki de benzer bir şey (tabii ki OS X'de olduğumuz için ntfs değil)