forked from cerc-io/stack-orchestrator
Work around docker uid/gid insanity
This commit is contained in:
parent
187c06ef5a
commit
b84a28592d
@ -116,7 +116,11 @@ def command(ctx, include, exclude):
|
|||||||
if not dry_run:
|
if not dry_run:
|
||||||
if verbose:
|
if verbose:
|
||||||
print(f"Executing: {build_command}")
|
print(f"Executing: {build_command}")
|
||||||
envs = {"CERC_NPM_AUTH_TOKEN": npm_registry_url_token} | ({"CERC_SCRIPT_DEBUG": "true"} if debug else {})
|
# Originally we used the PEP 584 merge operator:
|
||||||
|
# envs = {"CERC_NPM_AUTH_TOKEN": npm_registry_url_token} | ({"CERC_SCRIPT_DEBUG": "true"} if debug else {})
|
||||||
|
# but that isn't available in Python 3.8 (default in Ubuntu 20) so for now we use dict.update:
|
||||||
|
envs = {"CERC_NPM_AUTH_TOKEN": npm_registry_url_token}
|
||||||
|
envs.update({"CERC_SCRIPT_DEBUG": "true"} if debug else {})
|
||||||
try:
|
try:
|
||||||
docker.run(builder_js_image_name,
|
docker.run(builder_js_image_name,
|
||||||
remove=True,
|
remove=True,
|
||||||
|
@ -39,6 +39,7 @@ RUN mkdir /scripts
|
|||||||
COPY build-npm-package.sh /scripts
|
COPY build-npm-package.sh /scripts
|
||||||
COPY yarn-local-registry-fixup.sh /scripts
|
COPY yarn-local-registry-fixup.sh /scripts
|
||||||
COPY build-npm-package-local-dependencies.sh /scripts
|
COPY build-npm-package-local-dependencies.sh /scripts
|
||||||
|
COPY fixup-for-uid.sh /scripts
|
||||||
ENV PATH="${PATH}:/scripts"
|
ENV PATH="${PATH}:/scripts"
|
||||||
|
|
||||||
COPY entrypoint.sh .
|
COPY entrypoint.sh .
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
/scripts/fixup-for-uid.sh
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
18
app/data/container-build/cerc-builder-js/fixup-for-uid.sh
Executable file
18
app/data/container-build/cerc-builder-js/fixup-for-uid.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Make the container usable for uid/gid != 1000
|
||||||
|
if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
current_uid=$(id -u)
|
||||||
|
current_gid=$(id -g)
|
||||||
|
user_name="hostuser"
|
||||||
|
# First check the current uid. If == 1000 then exit, nothing needed because that uid already exists
|
||||||
|
if [[ ${current_uid} == 1000 ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
# Also exit for root
|
||||||
|
if [[ ${current_uid} == 0 ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
# Create the user with home dir
|
||||||
|
useradd -m -d /home/${user_name} -s /bin/bash -g ${current_gid} -u ${current_uid} ${user_name}
|
Loading…
Reference in New Issue
Block a user