mirror of https://github.com/pyodide/pyodide.git
Automatic detection using podman
This commit is contained in:
parent
28806a2501
commit
cdc5e9ec6a
42
run_docker
42
run_docker
|
@ -19,6 +19,14 @@ HEALTHCHECK_MESSAGE="Done initialization"
|
||||||
|
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
|
# If docker does not exist, podman is used instead.
|
||||||
|
if ! command -v docker &> /dev/null; then
|
||||||
|
USER_FLAG=()
|
||||||
|
docker() {
|
||||||
|
podman $@
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
cat > /dev/stdout <<EOF
|
cat > /dev/stdout <<EOF
|
||||||
|
@ -107,6 +115,23 @@ mkdir -p .docker_home
|
||||||
|
|
||||||
# Start a detached container as root, add the host uname and uid to /etc/passwd,
|
# Start a detached container as root, add the host uname and uid to /etc/passwd,
|
||||||
# then run forever
|
# then run forever
|
||||||
|
cat << EOF >.docker_home/entrypoint.sh
|
||||||
|
groupadd --gid '$USER_GID' '$USER_NAME';
|
||||||
|
useradd\
|
||||||
|
--home '$USER_HOME'\
|
||||||
|
--uid '$USER_ID'\
|
||||||
|
--gid '$USER_GID'\
|
||||||
|
--comment '$USER_COMMENT_FIELD'\
|
||||||
|
--shell '$USER_INTERPRETER'\
|
||||||
|
--groups sudo\
|
||||||
|
$USER_NAME\
|
||||||
|
;
|
||||||
|
echo 'export PATH=\$PATH:$USER_HOME/.local/bin' >> /etc/profile;
|
||||||
|
echo '%sudo ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers ;
|
||||||
|
echo '$HEALTHCHECK_MESSAGE';
|
||||||
|
tail -f /dev/null
|
||||||
|
EOF
|
||||||
|
|
||||||
CONTAINER=$(\
|
CONTAINER=$(\
|
||||||
docker run \
|
docker run \
|
||||||
"${PORT_CONFIGURATION_LINE[@]}" \
|
"${PORT_CONFIGURATION_LINE[@]}" \
|
||||||
|
@ -115,22 +140,7 @@ CONTAINER=$(\
|
||||||
--user root \
|
--user root \
|
||||||
--shm-size 2g \
|
--shm-size 2g \
|
||||||
"${PYODIDE_DOCKER_IMAGE}" \
|
"${PYODIDE_DOCKER_IMAGE}" \
|
||||||
/bin/bash -c " \
|
/bin/bash .docker_home/entrypoint.sh \
|
||||||
groupadd --gid '$USER_GID' '$USER_NAME'; \
|
|
||||||
useradd \
|
|
||||||
--home '$USER_HOME' \
|
|
||||||
--uid '$USER_ID' \
|
|
||||||
--gid '$USER_GID' \
|
|
||||||
--comment '$USER_COMMENT_FIELD' \
|
|
||||||
--shell '$USER_INTERPRETER' \
|
|
||||||
--groups sudo \
|
|
||||||
$USER_NAME \
|
|
||||||
; \
|
|
||||||
echo 'export PATH=\$PATH:$USER_HOME/.local/bin' >> /etc/profile; \
|
|
||||||
echo '%sudo ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers ; \
|
|
||||||
echo '$HEALTHCHECK_MESSAGE'; \
|
|
||||||
tail -f /dev/null \
|
|
||||||
" \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
until docker logs "$CONTAINER" 2>&1 | grep -q "$HEALTHCHECK_MESSAGE"; do
|
until docker logs "$CONTAINER" 2>&1 | grep -q "$HEALTHCHECK_MESSAGE"; do
|
||||||
|
|
Loading…
Reference in New Issue