mirror of
/repos/baseimage-docker.git
synced 2025-12-30 08:01:31 +01:00
my_init container_environment.sh: ensure that environment variable names don't include characters unsupported by Bash
Closes GH-230.
This commit is contained in:
parent
b72ef2eba3
commit
43af4a393e
@ -1,6 +1,7 @@
|
||||
## 0.9.17 (not yet released)
|
||||
|
||||
* Removed nano and replaced vim with vim-tiny. This reduces Baseimage-docker's virtual size by 42 MB.
|
||||
* When `my_init` generates `/etc/container_environment.sh`, it now ensures that environment variable names do not include any characters unsupported by Bash. Unsupported characters are now replaced with underscores. This fixes compatibility issues with Docker Compose. Closes GH-230.
|
||||
* `my_init` no longer reads from and writes to `/etc/container_environment` if that directory does not exist. Previously it would abort with an error. This change makes it easier to reuse `my_init` in other (non-Baseimage-docker-based) projects without having to modify it.
|
||||
* Baseimage-docker no longer sets the HOME environment variable by default. We used to set HOME by default to work around a Docker issue where HOME defaults to /, but this issue is now gone. Furthermore, the fact that we set HOME interfered with the USER stanza: USER would no longer set HOME. So we got rid of our HOME variable. Closes GH-231.
|
||||
* Some unnecessary Ubuntu cron jobs have been removed. Closes GH-205.
|
||||
|
||||
@ -9,6 +9,8 @@ LOG_LEVEL_WARN = 1
|
||||
LOG_LEVEL_INFO = 2
|
||||
LOG_LEVEL_DEBUG = 3
|
||||
|
||||
SHENV_NAME_WHITELIST_REGEX = re.compile('[^\w\-_\.]')
|
||||
|
||||
log_level = None
|
||||
|
||||
terminated_child_processes = {}
|
||||
@ -84,7 +86,7 @@ def export_envvars(to_dir = True):
|
||||
if to_dir:
|
||||
with open("/etc/container_environment/" + name, "w") as f:
|
||||
f.write(value)
|
||||
shell_dump += "export " + shquote(name) + "=" + shquote(value) + "\n"
|
||||
shell_dump += "export " + sanitize_shenvname(name) + "=" + shquote(value) + "\n"
|
||||
with open("/etc/container_environment.sh", "w") as f:
|
||||
f.write(shell_dump)
|
||||
with open("/etc/container_environment.json", "w") as f:
|
||||
@ -103,6 +105,9 @@ def shquote(s):
|
||||
# the string $'b is then quoted as '$'"'"'b'
|
||||
return "'" + s.replace("'", "'\"'\"'") + "'"
|
||||
|
||||
def sanitize_shenvname(s):
|
||||
return re.sub(SHENV_NAME_WHITELIST_REGEX, "_", s)
|
||||
|
||||
# Waits for the child process with the given PID, while at the same time
|
||||
# reaping any other child processes that have exited (e.g. adopted child
|
||||
# processes that have terminated).
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user