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
asked 2 years ago1885 views
1 Answer
0
Accepted Answer

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
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions