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:
- 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? - Wenn ich es aktivieren möchte
supervisor
Wie mache ich das, wenn jedes Mal, wenn ich den Ordner verteile, anders ist? - 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 № 1So 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.