Erstellen Sie die Meteor-App in einem benutzerdefinierten GitLab-Hook.

Erstellen Sie die Meteor-App in einem benutzerdefinierten GitLab-Hook.

Wie erstelle ich eine Meteor-App (führe „Meteor Build“ aus) in einem benutzerdefinierten GitLab-Hook? Der benutzerdefinierte Hook wird vom Benutzer „git“ ausgeführt, der anscheinend keine Möglichkeit hat, „Meteor Build“ auszuführen.

Daher möchte ich den Benutzer im Skript in jemanden ändern, von dem ich weiß, dass er die App erstellen kann.

Dies ist meine Bash-Datei bis jetzt:

#!/bin/sh
#

# The deployed directory
DEPLOYDIR=/var/www/site/

echo " - Starting checkout"
GIT_WORK_TREE="$DEPLOYDIR" git checkout -f
echo " - Finished checkout" 

echo " - Starting meteor build"
#not working yet
sudo su - nodejs
cd "$DEPLOYDIR"
meteor build .

Antwort1

su - userstartet eineinteraktivShell mit dem Benutzer user. Sie sollten Folgendes verwenden:

su -c "cd \"$DEPLOYDIR\"; meteor build ." nodejs

Präparation:

su: suausführbare Datei : als anderer Benutzer
-c "COMMAND"ausführen : BenutzerCOMMAND
nodejsnodejs

verwandte Informationen