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.
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. –
Merhaba! Sadece bir yere bir birim yüklediğinizde, bir şekilde –
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