AWS CodeDeploy – Muss mit einem Terminal verbunden sein

AWS CodeDeploy – Muss mit einem Terminal verbunden sein

Ich habe eine CICD-Bitbucket-Pipeline, die ausgeführt wird und versucht, ein Bereitstellungsskript auszuführen.

appspec.yml

version: 0.0
os: linux

    files:
      - source: scripts/osgi-deploy.sh
        destination: /home/jboss
        overwrite: true
    file_exists_behavior: OVERWRITE
    hooks:
      AfterInstall:
        - location: scripts/osgi-deploy.sh
          timeout: 180
          runas: jboss

osgi-deploy.sh

echo "about to deploy to osgi-app ($USER) ..."
screen -d -m -R "karaf" bash /home/jboss/scripts/build-start-osgi.sh &

Ausgabe

about to deploy to osgi-app (jboss) ...
Must be connected to a terminal.

Wie Sie sehen, osgi-deploy.shwird die Datei ausgeführt und versucht, ein zu starten screen. Da sie jedoch von einem externen Prozess (AWS CodeDeploy) ausgeführt wird, wird angezeigt, dass sie gestartet wird Must be connected to a terminal. Wenn ich sie osgi-deploy.shvon einer CLI aus ausführe, funktioniert sie wie erwartet.

Ich habe versucht, den Bildschirm mithilfe des Parameters abzutrennen -d, aber das funktioniert nicht.

verwandte Informationen