-
Magallanes Deployment
Ich habe zwei Fragen zum Thema Deployment mit Magallanes. Sie sind nicht Contao spezifisch, aber da dies so ein Super Forum ist und einige Contao Entwickler Magallanes verwenden, dachte ich, ich versuche es mal hier.
1. Composer install
Die Magallanes Dokumentation schlägt vor, composer install in der pre-deploy Phase auszuführen, also lokal auf meinem Rechner. Daher habe ich folgends in meiner .mage.yml:
Code:
pre-deploy:
- composer/install: { flags: '--no-dev --optimize-autoloader' }
Durch den "--no-dev" Flag werden mir also auch lokal meine Entwicklungsabhängigkeiten weggenommen, die ich noch brauche. Wäre es nicht sinnvoller, composer-install auf dem Zielserver aufzurufen? Also in on-deploy? Oder was wäre der bessere Weg?
2. Benutzer
Wenn ich unter "user" meinen eigenen Nutzer eintrage, kann ich schön deployen. Andere Nutzer haben dann jedoch das Problem, dass sie nicht deployen können, da sie keine Schreibrechte auf den von mir erstellten Ordnern haben. Meine Idee ist daher einen allgemeinen Nutzer anzulegen, z.B. "magallanes" und alle unter diesem Nutzer deployen zu lassen (hat auch den Vorteil, dass die .mage.yml direkt aus Git gezogen und verwendet werden kann, ohne Anpassungen zu machen). Macht ihr das ähnlich oder gibt es einen besseren Weg?
-
ad 1) Ich würde es on-deploy machen. Hier eine Beispiel .mage.yml aus unseren Projekten:
Code:
magephp:
environments:
live:
user: foo
hosts:
- foo.example.org
host_path: /var/www/foo
releases: 2
# exclude everything that is installed via composer or not needed otherwise
exclude:
- ./app/config/parameters.yml
- ./assets
- ./files/content
- ./node_modules
- ./system
- ./var
- ./vendor
- ./.gitignore
- ./.mage.yml
- ./.php_cs.dist
- ./.travis.yml
- ./README.md
pre-deploy:
# check security
- exec: { cmd: 'php vendor/bin/security-checker security:check', desc: 'Security check' }
on-deploy:
# symlink the parameters.yml
- fs/link: { from: '../../../../shared/app/config/parameters.yml', to: 'app/config/parameters.yml' }
# symlink the files/content directory
- fs/link: { from: '../../../shared/files/content', to: 'files/' }
# execute composer install, with an increased timeout (could take a while)
- composer/install: { timeout: 300 }
on-release:
post-release:
post-deploy:
# use custom PHP CLI path and composer.phar
composer:
path: /etc/bin/php72 ~/composer.phar
ad 2) Der user, der da eingetragen ist, ist ja der entsprechende user am Server der jeweiligen Umgebung. Der sollte ja für alle gleich sein.
-
Danke für deine Beispiel Konfiguration. Das ist sehr hilfreich.