2017-12-14 10 views
8

Birkaç büyük Symfony projem var ve dağıtım otomasyonumuzun normal işlemini gerçekleştirdiğinde her şeyi Symfony 4 (Flex) sürümüne güncelledikten sonra fark ettik: nelerin dahil olduğunu bağlı beklendiği gibiSymfony Flex ve --no-dev ile bir üretim ortamına dağıtma

Symfony operations: 2 recipes (72fad9713126cf1479bb25a53d64d744) 
    - Unconfiguring symfony/maker-bundle (>=1.0): From github.com/symfony/recipes:master 
    - Unconfiguring phpunit/phpunit (>=4.7): From github.com/symfony/recipes:master 

Sonra, bu symfony.lock ve config/bundles.php değişmelere neden olmaktadır, ayrıca başka ne:

composer install --no-dev

Biz (örneğin) bu ile bitirmek 01 composer.json'da.

Bunların hiçbiri tam olarak kırılmadı, ancak artık temiz bir git status çıktısına sahip olmayan bir üretim dağıtımına sahip olmak rahatsız edici ve gerçekte ne dağıtıldığı konusunda kafa karışıklığına neden olabilir.

örneğin bu maddeleri dağıtmak hiçbir gerçek zararı yoktur çünkü ben sadece require yerine require-dev her şeyi koyabilirsiniz, ya da ben Besteci komutunun --no-dev bölümünü ihmal olabilir, bunun için çeşitli geçici çözümler vardır.

Ama gerçekten, burada doğru uygulama nedir? Kilitli bir yazılım parçasını dağıtıyorsanız Flex'in konfigürasyonda hiçbir değişiklik yapmasını söylemenin bir yolu olmadığı garip görünüyor. Bu bir özellik isteği mi, yoksa burada bazı yapılandırmalar kaçırdım mı?

+0

'symfony.lock' dosyasını repo'ya yüklediniz mi? Bu sorunun dağıtılmasından kaçınmak gerekiyor. – yceruto

+0

Belki de ilgili https://stackoverflow.com/q/47071211/4224384 – yceruto

+0

@yceruto Evet, 'symfony.lock' sürüm kontrolü altında. Aslında bunun tam tersi problem: '--no-dev' belirtildiği için, Flex 'need-dev' üyelerinin kaldırıldığını düşünüyor, bu yüzden 'manifest.json' temelindeki uygun olmayan adımları uygun şekilde çalıştırıyor. tarifleri. Örneğimde bu, phpunit.xml.dist' dosyasının silinmesi ve Maker paketinin 'config/bundles.php' den kaldırılması anlamına geliyordu. Sadece bu davranışı bir üretim dağıtımında önlemek için bir yol olmalı gibi görünüyor. – futureal

cevap