/ / Gitlab - Google compute engine Kontinuierliche Bereitstellung - swift3, gitlab, google-compute-engine, Continuous-Deployment, Dampf

Gitlab - Google Compute Engine Kontinuierliche Lieferung - swift3, gitlab, Google-Compute-Engine, kontinuierliche Bereitstellung, Dampf

Was ich versuche, ist Continuous zu aktivierenLieferung von GitLab an meine Compute Engine bei Google Cloude. Ich habe dort Ubuntu 16.04 TSL. Ich habe alle Komponenten installiert, die für die Ausführung meines Projekts erforderlich sind: Swift, vapor, nginx. Es ist mir auch gelungen, Gitlab Runner zu installieren und einen Runner zu erstellen, auf den von meinem Gitlab Repo aus zugegriffen werden kann. Jedes Mal, wenn ich Meister bin, werden die Läufer ausgelöst. Was passiert ist ein Fehler aufgrund von:

could not create leading directories of "/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git": Permission denied

Wenn ich die Berechtigungen auf ändere chmod -R 777 Es wird sich ändern running zum build Bühne sichtbar auf der Gitlab-Pipeline.

Ich habe so etwas gemacht: sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/builds sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/cache aber das hilft nicht, der fehler ist derselbe Permission denied

Unten hast du meine .gitlab-ci.yml

before_script:
- swift --version

stages:
- build
- deploy

job_build:
stage: build
before_script:
- vapor clean
script:
- vapor build --release
only:
- master

job_run_app:
stage: deploy
script:
- echo "Deploy a  API"
- vapor run --name=App --env=production
environment:
name: production

job_run_frontend:
stage: deploy
script:
- echo "Deploy a  Frontend"
- vapor run --name=Frontend --env=production
environment:
name: production

Aber das muss nicht auf die nächste Stufe übergehen, z. Und ... ich habe noch ein paar Fragen:

  1. Gitlab Runner erstellt Builds unter location /home/gitlab-runner/builds/ An dieser Stelle hat jeder neue Job einen eigenen Ordner. zum Beispiel /home/gitlab-runner/builds/2bbbbbd/ in dem ist mein Projekt und die Befehle werden ausgeführt. Was passiert also, wenn die erste Version läuft und ich eine neue Version bereitstelle? Die Ports werden von der ersten Instanz blockiert und so weiter?
  2. Wenn ich es aktivieren möchte supervisor Wie mache ich das, wenn jedes Mal, wenn ich den Ordner verteile, anders ist?
  3. Kann mir jemand erklären oder zeigen, oder zeigt mir ein Tutorial, wie die kontinuierliche Bereitstellung ohne Docker funktioniert?

Antworten:

1 für die Antwort № 1

So starten Sie einen Dienst mit GitLab Runner

Dank langer Suche bin ich finnischantworte! Den vollständigen Artikel finden Sie oben. In einer kurzen GitLab-CI-Dokumentation wird die Verwendung von dpl für die Bereitstellung empfohlen. Der Gitlab-Läufer führt test aus und sollte beendet werden. Der Läufer ist so ausgelegt, dass er alle erstellten Prozesse nach Abschluss jedes Builds beendet. Der GitLab-Runner kann keine Operationen außerhalb des Katalogs ausführen.