burnabitburnabit MemberComments: 6 Received thanks: 1 Member since: September 2015 edited September 2015
Hallo Forum,

leider finde ich weder hier im Forum noch im Netz hilfreiche Informationen zum Thema Deployment von Shopware mittels Capistrano.

Da wir bei uns in der Agentur schon recht lange alle Projekte mit Capistrano deployen, würde ich natürlich gerne auch unser erstes Shopware-Projekt unter Verwendung von Capistrano auf unterschiedliche Umgebungen deployen.

Bin ich mit Capistrano generell auf dem falschen Dampfer?

Wenn nicht, wäre ich über ein "Rezept" oder weiterführende Infos dankbar.

/burn

Comments

  • ShopwareianerShopwareianer MemberComments: 3405 Received thanks: 603 Member since: November 2013
    Also ich deploye bspw. mit Envoyer. Dann gibts natürlich auch andere Services wie http://deploybot.com/ usw.

    Oder eben direkt ein eigenes Deployment bauen.

    Mit Capistrano habe ich allerdings keine Erfahrungen. Sieht auf den ersten Blick auch nicht wirklich Nutzerfreundlich aus.

    Bei mir ist es dann so:
    privates Git Repo -> commiten & pushen -> Envoyer holt sich automatisch die Änderungen aus dem Git Repo und aktualisiert alles auf dem Live-Server ohne Downtime.
  • hechec MemberComments: 142 Received thanks: 39 Member since: August 2014
    Ich deploye mit Capifony, ist allerdings noch nicht lange im Einsatz, so dass ich noch wenig Erfahrungswerte nennen kann. Prinzipiell will ich aber eh auf Capistrano 3 umsteigen... vielleicht mach ich das die Tage mal und dokumentier es so, dass ich es veröffentlichen kann ;-)


    Prinzipiell bin ich über folgende Punkte gestolpert:

    - die GIT-Version von Shopware enthält keine Versions-Info, daher muss die manuell eingetragen werden (vgl. http://snajdr.de/setting-up-shopware-from-github/)

    - wie Datenbank-Migrations etc. angestossen werden, steht in https://github.com/shopware/shopware/bl ... rt-hacking

    - der FPM muss von Capistrano neu geladen werden, sonst wird wild durcheinander aus neuem und altem Release zugegriffen (siehe z.B. https://github.com/hooktstudios/capistr ... php-fpm.rb, /etc/sudoers muss dafür angepasst werden)

    - neben den üblichen Verdächtigen config.php, sw-domain-hash.html, media, logs, files setze ich auch engine/Shopware/Plugins/Community auf shared, damit ich Community-Plugins aus dem Store nicht auch in meinem GIT-Repo halten muss (das war problematisch).
    Allerdings gibt es dann Probleme mit dem Smarty {link} Plugin, vgl. meinen Pull Request https://github.com/shopware/shopware/pull/304
    Alternativ dachte ich daran, engine/Shopware/Plugins/Community jeweils aus dem Vorgänger-Release zu kopieren (ähnlich wie Capifony es mit dem vendors-Verzeichnis machen kann)

    - das initiale Deployment habe ich bislang von Hand gemacht ... das steht noch auf meiner Todo-Liste für Cap (DB-Initialisierung ohne Demo-Daten, aber mit Anlegen eines Backend-Users etc.)

    Grüße,
    Sven
  • burnabitburnabit MemberComments: 6 Received thanks: 1 Member since: September 2015
    Hallo in die Runde,

    zunächst danke für die ersten Infos/Anregungen.

    Wir haben nun einen Weg zum Deploy via Capistrano2 gefunden.

    Letztlich war die Lösung, einige Aufgaben (tasks) vor dem deploy:update auszuführen und zusätzlich nach dem deploy:update weitere Aufgaben zu erledigen.

    Die tasks im Einzelnen:
    before "deploy:update", "deploy:shopware_install"
    after "deploy:update", "deploy:shopware_fix_permissions", "deploy:shopware_create_config_symlinks", "deploy:shopware_delete_unwanted_files", "deploy:shopware_run_composer", "deploy:cleanup"
    
    namespace :deploy do 
    	task :shopware_install do
    		desc "install shopware using git"
    		run "git clone https://github.com/shopware/shopware.git #{release_path}/public/"
    	end 
    	
    	task :shopware_fix_permissions do
    		desc "fix shopware permissions"
    		run "chmod 750 #{release_path} #{release_path}/public/ #{release_path}/public/themes/ #{release_path}/public/themes/Frontend/"
    	end
    	
    	task :shopware_create_config_symlinks do
    		desc "create shopware symlinks"
    		# remove original .htaccess and symlink to config file
    		run "rm #{latest_release}/public/.htaccess"
    		run "ln --symbolic #{shared_path}/config/htaccess_env #{latest_release}/public/.htaccess"
    		# symlink config config.php
    		run "ln --symbolic #{shared_path}/config/config_env.php #{latest_release}/public/config.php"
    		# remove original and symlink shared media directory 
    		run "rm -rf #{latest_release}/public/media"
    		run "ln --symbolic #{shared_path}/content/media #{latest_release}/public/media"
    	end
    	
    	task :shopware_delete_unwanted_files do
    		desc "delete unwanted shopware files (e.g. installer files)"
    		run "rm -rf #{latest_release}/public/recovery/install"
    	end
    	
    	task :shopware_run_composer do
    		run "php /path/to/composer.phar install --working-dir #{current_path}/public/"
    	end
    end
    
    Wer Interesse an unserem Setup und unserer deploy.rb hat, kann gerne eine PM an mich senden.

    Da meine in diesem Thread gestellte Frage für mich geklärt ist, setze ich den Thread auf gelöst.

    Nochmals danke in die Runde und reingehau'n,

    /burn
    Thanked by 18mylez
Sign In or Register to comment.