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ı?
'symfony.lock' dosyasını repo'ya yüklediniz mi? Bu sorunun dağıtılmasından kaçınmak gerekiyor. – yceruto
Belki de ilgili https://stackoverflow.com/q/47071211/4224384 – yceruto
@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