Ini bisa menjadi satu jenis diskusi lebih dari satu pertanyaan.
Saya ingin tahu kebijakan yang deployment Anda mengikuti dengan Magento2 & lokal > pementasan > produksi lingkungan
Setelah mencoba beberapa kali kami telah memutuskan pendekatan terbaik (atau paling tidak, yang paling solid) adalah file gitignore ini termasuk folder vendor di git.
.DS_Store
/.buildpath
/.cache
/.metadata
/.project
/.settings
atlassian*
/nbproject
/sitemap
/sitemap.xml
/.idea
/.gitattributes
/app/config_sandbox
/app/etc/config.php
/app/etc/env.php
/app/code/Magento/TestModule*
/lib/internal/flex/uploader/.actionScriptProperties
/lib/internal/flex/uploader/.flexProperties
/lib/internal/flex/uploader/.project
/lib/internal/flex/uploader/.settings
/lib/internal/flex/varien/.actionScriptProperties
/lib/internal/flex/varien/.flexLibProperties
/lib/internal/flex/varien/.project
/lib/internal/flex/varien/.settings
/node_modules
/.grunt
/pestle.phar
/pub/media/*.*
!/pub/media/.htaccess
/pub/media/catalog/*
!/pub/media/catalog/.htaccess
/pub/media/customer/*
!/pub/media/customer/.htaccess
/pub/media/downloadable/*
!/pub/media/downloadable/.htaccess
/pub/media/import/*
!/pub/media/import/.htaccess
/pub/media/theme/*
/pub/media/theme_customization/*
!/pub/media/theme_customization/.htaccess
/pub/media/wysiwyg/*
!/pub/media/wysiwyg/.htaccess
/pub/media/tmp/*
!/pub/media/tmp/.htaccess
/pub/media/captcha/*
/pub/static/***
!/pub/static/.htaccess
/var/*
!/var/.htaccess
.unison*
/sync.sh
Jadi kami menjalankan komposer hanya di lingkungan lokal: Karena setiap ekstensi baru, atau peningkatan perangkat lunak diuji dalam lokal, maka divalidasi dan dikomit. Kami mungkin akan menyertakan file app / etc / config.php di git juga, tetapi file itu ditulis ulang saat dijalankan setup:upgrade
, bukan?
Termasuk vendor berarti ukuran repositori akan lebih besar dari (mungkin) yang direkomendasikan tetapi dengan cara ini ketika menggunakan kode, kami hanya menjalankan urutannya:
bin/magento setup:upgrade
bin/magento setup:di:compile (optional)
bin/magento setup:static-content:deploy
Informasi terkait: http://www.damianculotta.com.ar/magento/gitignore-y-la-estrategia-de-deploys-en-magento2
Lihat mengapa kami memilih perintah kompilasi sebagai Magento 2 opsional - setup: di: compile ?
MEMPERBARUI
Yang benar adalah kami mengalami beberapa masalah ketika menerapkan perubahan kode dalam proyek Magento 2 kami yang diterbitkan
Perubahan berfungsi di lokal & pementasan (diperiksa di kedua mode: pengembang & produksi ... meskipun kami secara konseptual mengonfigurasikan lingkungan itu dalam mode pengembang), tetapi beberapa di antaranya tidak bekerja di lingkungan produksi (dalam mode produksi), dll ... jadi saya tidak yakin kita mengikuti strategi yang tepat. Saya ingin melihat apa urutan perintah yang tepat, dan relevansi urutan dalam perintah itu
Bahkan, setiap hari saya kurang yakin tentang kegunaan mode produksi Magento 2, kecuali Anda tidak akan mengubah apa pun dalam proyek. Bisakah kamu berubah pikiran?
sumber
Jawaban:
Saya tidak yakin apakah saya mengerti Anda benar, tetapi itulah tepatnya mode produksi : sistem produksi di mana Anda tidak mengubah apa pun (bijak kode). Sampai penyebaran berikutnya, yaitu.
Saya menemukan penyebaran berbasis Git yang Anda gunakan kurang cocok untuk Magento 2 daripada untuk Magento 1, karena semua preprocessing. Pembangunan dan penyebaran lebih kompleks dan IMHO tidak ada jalan lain untuk proses pembuatan otomatis
Apa yang akan saya rekomendasikan:
Untuk mencapai itu, pisahkan bangunan dari penempatan dan lakukan hal berikut dalam proses pembuatan:
composer install
(menambahkanvendor
ke repositori juga dimungkinkan, tetapi jika Anda melakukannya hanya untuk menghindari menjalankan komposer di server selama penerapan, lebih baik lakukan dalam langkah build dan hanya simpancomposer.lock
dalam repo)Pembuatan kode (YMMV):
membuat arsip (yang membangun artefak ) dari direktori Magento penuh, termasuk
media
danvar
, tetapi termasukvendor
,pub
,var/generated
danvar/di
. Dimulai dengan magento-2.2 ,var/generated
danvar/di
dipindahkan kegenerated/code
dangenerated/metadata
, yang membuatnya lebih mudah untuk memisahkan mereka darivar
yang seharusnya diabaikan untuk penggunaan.Dalam penyebaran, salin artefak bangunan ke server target, ekstrak ke direktori baru dan:
media
,var/session
,var/log
, ...)setup:upgrade
Proses penyebaran ini dapat dengan mudah diimplementasikan dengan Deployer , yang seperti Capistrano tetapi dalam PHP. Solusi penyebaran penuh untuk Magento 2 berdasarkan penyebar dapat ditemukan di sini: https://github.com/mwr/magedeploy2 (terima kasih kepada netz98!) Dan di sini ada satu lagi yang kami gunakan: https://github.com/staempfli / magento2-deployment-tool
app/etc/config.php
dalam repositori baik untuk melacak modul yang diaktifkan dan dinonaktifkan.Ini bukan instruksi langkah demi langkah tetapi harus memberi Anda gambaran umum untuk alternatif yang lebih kuat untuk proses Anda saat ini. Lihatlah alat-alat yang terhubung untuk melihat bagaimana solusi lengkap mungkin terlihat.
sumber
.gitignore
file tidak relevan dengan masalah aktual. Anda bisa menggunakan yang standar.Menurut saya, tunggu Magento 2.2 atau coba terapkan pendekatan yang serupa.
Magento 2.2 memperkenalkan penyebaran pipa dengan misalnya memisahkan build server dengan server produksi.
Berikut adalah dokumentasi resmi: http://devdocs.magento.com/guides/v2.2/config-guide/deployment/pipeline/
Selain itu, saat ini saya menggunakan Kemungkinan untuk mengelola penyebaran otomatis dengan template konfigurasi dan beberapa pengaturan lingkungan.
sumber