Automatic detection using podman

This commit is contained in:
YISH 2024-08-13 21:32:08 +08:00
parent 28806a2501
commit cdc5e9ec6a
1 changed files with 26 additions and 16 deletions

View File

@ -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