2017-09-06 1 views
1

Was ist der richtige Weg, um Server zu implementieren ist - ist esgit pull oder git checkout bereitstellen

git

im Arbeitsverzeichnis ziehen (/ var/www/myproject)

oder

git --work-tree =/var/www/myproject --git-dir =/srv/GIT/myproject.git Kasse -f

Beide würden einen Post-Empfang-Haken in einem bloßen Repo benötigen. Ich testete beide, sie arbeiten in beide Richtungen, aber was ist die beste Praxis?

Antwort

3

Sie sollten kein Git Repo auf dem Server verwenden, um einen Build auszulösen. Sie sollten das Repository trennen und den Server bereitstellen.

Der beste Weg ist, verwenden Sie einen Post-Empfang (Push) Hook, um einen Build in CI-Server auszulösen. Dann könnte CI einfach den ganzen Server-Code packen und die Konfiguration ändern, dann auf den Ziel-Server kopieren, den alten Server anhalten, ein Upgrade durchführen und einen neuen starten.

Der gute ist, dass Sie Symbol Link verwenden können, um alten und neuen Code zu wechseln, um Inkonsistenzen beim Kopieren zu reduzieren.

Sie könnten Jenkins, GoCD, TeamCity und so weiter als CI-Server verwenden.

+0

Warum sollte ich nicht, gibt es einen triftigen Grund? – Isengo

+0

Aus Gründen der Sicherheit und Geschwindigkeit möchten Sie nicht, dass Ihr Codeverlauf von Hackern gestohlen wird und Sie den gesamten Buildprozess beschleunigen möchten. Wenn Sie Interesse an einer kontinuierlichen Bereitstellung haben, können Sie [Continuous Delivery: Zuverlässige Softwareversionen durch Build-, Test- und Bereitstellungsautomatisierung (Addison-Wesley Signature Series (Fowler)): Jez Humble, David Farley: 9780321601919: Amazon.com: Bücher ] (https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912). Dieses Buch hat eine gute Erklärung, wie man es richtig macht. – networm