diff --git a/script/include/alpine_setup_functions.inc.sh b/script/include/alpine_setup_functions.inc.sh new file mode 100755 index 00000000..d28b88a3 --- /dev/null +++ b/script/include/alpine_setup_functions.inc.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# alpine_setup_functions: Functions used by the run_alpine_setup script + +update_system_packages() { + apk update + apk upgrade +} + +install_package() { + local package_name=${1} + + apk add ${1} + return $? +} + +add_group() { + local group_name="${1}" + local gid="${2}" + + addgroup -g "${gid}" -S "${group_name}" + return $? +} + +add_user() { + local username="${1}" + local primary_group="${2}" + local uid="${3}" + + adduser -u "${3}" -D -S -G "${primary_group}" "${username}" + return $? +} diff --git a/script/include/run_alpine_setup b/script/include/run_alpine_setup new file mode 100755 index 00000000..c094521a --- /dev/null +++ b/script/include/run_alpine_setup @@ -0,0 +1,25 @@ +# run_alpine_setup: Install basic system requirements for an app to run + +# Load alpine setup functions +source ./script/include/alpine_setup_functions.inc.sh + +## Set option defaults +# If GROUP information is incomplete, use the default one +if [ -z "${APP_GROUP+is_set}" ] || \ + [ -z "${APP_GID+is_set}" ]; then + APP_GROUP="atat" + APP_GROUP_ID="8000" +fi + +# If USER information is incomplete, error out +if [ -z "${APP_USER+is_set}" ] || \ + [ -z "${APP_UID+is_set}" ]; then + exit 1 +fi + +## Main +update_system_packages +install_package "bash" +install_package "dumb-init" +add_group "${APP_GROUP}" "${APP_GID}" +add_user "${APP_USER}" "${APP_GROUP}" "${APP_UID}"