Nextflow, "en son" Docker Görüntüsünü Çekmiyor

Dec 14 2020

İki VM çalıştırıyorum. Sonraki akışı çalıştırmak için bir VM kullanılır, diğer VM'de bir Jenkins oluşturma sunucusu vardır. Jenkins, yeni Docker görüntüleri oluşturmaktan ve yeni Docker görüntülerini özel google kapsayıcı kayıt defterimize aktarmaktan sorumludur.

Dosyam nextflow.configşuna benzer:

process {
    withLabel: awesome_image {
        container = "eu.gcr.io/best-project-1234/coolest_os:latest"
    }
}

Jenkins sunucusunu kullanarak yeni bir imaj oluşturduktan sonra, yeni bir nextflow betiği çalıştırıyordum ve nextflow'un hala eski imajı kullandığını fark ettim. Biraz araştırmadan sonra (https://stackoverflow.com/a/58539792/1820480), Bunun latestetiketi kullanmamla ilgisi olduğunu fark ettim ve zaten nextflow VM'de en yenisi olarak adlandırılan bir görüntü olduğundan, nextflow bunu kullanıyor ve kayıt defterini kontrol etmekle uğraşmıyor.

Soru: Her sonraki akış çalıştırılmadan önce kayıt defterinde yeni görüntüler olup olmadığını kontrol ettiğinden nasıl emin olabilirim? Veya, kayıt defterini kontrol eden (sonraki akış yerine) VM'de çalıştırabileceğim bir komut dosyası / program var mı?

Teşekkür ederim.

Yanıtlar

1 Steve Dec 14 2020 at 21:40

Nextflow, komutlarınızı kullanarak bir konteynerde çalıştırır docker run. Henüz çekmediğiniz bir görüntü belirlerseniz docker run, önce docker pullgörüntüyü indirmek / yerelleştirmek için bir işlem yapacaktır . Daha yeni görüntüler için kayıt defterini yeniden kontrol etmek için, docker pullNextflow'u çalıştırmadan önce (her görüntü için) aradığınızdan emin olmanız yeterlidir. Bunun yerine, her işlem başladığında kayıt defterinde daha yeni görüntüler olup olmadığını kontrol etmek istiyorsanız, lütfen aşağıya bakın.

Biraz araştırmadan sonra, en son Docker cli (v20.10.0) artık konteyner çalıştırırken çekme davranışını değiştirmek için bir işarete sahip gibi görünüyor:

--pull string   Pull image before running ("always"|"missing"|"never") (default "missing")

Bu güzel, çünkü artık bunu aşağıdakilerden geçirmenin mümkün olması gerektiği anlamına geliyor nextflow.config:

docker {
    enabled = true
    runOptions = '--pull=always'
}

Ancak bu, ortaya çıkan docker pullher işlem için bir işlem yapma ek yüküne sahip olacaktır ve kayıt defterinize yeni görüntülerin ne zaman gönderileceğine bağlı olarak, bazı işlemlerin iş akışı yürütme sırasında farklı kapsayıcılar alacağı anlamına gelebilir. Ancak, yalnızca 'en son' kaplara ihtiyacınız varsa ve yeniden üretilebilirliği önemsemiyorsanız, bu bir endişe kaynağı olmayabilir.