While looking at build failure metrics, I noticed this internal error:
-----> Installing dependencies using 'pip install -r requirements.txt'
/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/vendor/buildpack-stdlib_v8.sh: line 56: UID: readonly variable
! Push rejected, failed to compile Python app.
This appears to be due to an app having the env var UID set in it's config vars, and UID being a read-only Bash env var.
We should filter this env var out (along with any others labelled as readonly on https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html), here:
|
# Usage: $ export-env ENV_DIR WHITELIST BLACKLIST |
|
# Exports the environment variables defined in the given directory. |
|
export_env() { |
|
local env_dir=${1:-$ENV_DIR} |
|
local whitelist=${2:-''} |
|
local blacklist |
|
blacklist="$(_env_blacklist "$3")" |
|
if [[ -d "$env_dir" ]]; then |
|
# Environment variable names won't contain characters affected by: |
|
# shellcheck disable=SC2045 |
|
for e in $(ls "$env_dir"); do |
|
echo "$e" | grep -E "$whitelist" | grep -qvE "$blacklist" \ |
|
&& export "$e=$(cat "$env_dir/$e")" |
|
: |
|
done |
|
fi |
|
} |
We should probably do this before implementing #1451 / #1700.
GUS-W-19247022.
While looking at build failure metrics, I noticed this internal error:
This appears to be due to an app having the env var
UIDset in it's config vars, andUIDbeing a read-only Bash env var.We should filter this env var out (along with any others labelled as
readonlyon https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html), here:heroku-buildpack-python/vendor/buildpack-stdlib_v8.sh
Lines 44 to 60 in fc44144
We should probably do this before implementing #1451 / #1700.
GUS-W-19247022.