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
已提问 2 年前1901 查看次数
1 回答
0
已接受的回答

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
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则