CodeDeploy: Script at specified location failed to close STDOUT

0

I am trying to add the following script to the ApplicationStart section of my CodeDeploy appspec.yml:

# collect_static_files.sh
#!/bin/bash

# source other files, change dir, activate python here

./manage.py collectstatic --noinput

With this file added deploys fail with

Script at specified location: scripts/deploy/collect_static_files.sh failed to close STDOUT

The log for the ApplicationStart event doesn't show anything other than the command output:

[stderr]You are using pip version 18.1, however version 21.3.1 is available.
[stderr]You should consider upgrading via the 'pip install --upgrade pip' command.
Script - scripts/deploy/collect_static_files.sh
[stdout]
[stdout]170 static files copied to '/var/www/mydir/static'.

I've tried turning off and redirecting output:

# ./manage.py collectstatic --noinput > /dev/null 2>&1
# ./manage.py collectstatic --noinput --verbosity 0

Neither of which clear the error and even if they did wouldn't really solve the problem as I would like the output added to the log.

There is something similar discussed on the codedeploy agent GitHub but for backgrounded commands. Also did a search for closing STDOUT but that doesn't seem like something I should be doing manually. What am I missing?

JP
gefragt vor 2 Jahren1902 Aufrufe
1 Antwort
0
Akzeptierte Antwort

Increasing the timeout fixed it:

  ApplicationStart:
    - location: scripts/deploy/collect_static_files.sh
      timeout: 60

Previous values was 5. The command itself runs much quicker than that though so I'm not sure it was timing out.

JP
beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen