diff --git a/bitnami/airflow-worker/2/debian-10/Dockerfile b/bitnami/airflow-worker/2/debian-10/Dockerfile index fda77f62a170..2439a3d144d6 100644 --- a/bitnami/airflow-worker/2/debian-10/Dockerfile +++ b/bitnami/airflow-worker/2/debian-10/Dockerfile @@ -28,7 +28,7 @@ RUN /opt/bitnami/scripts/airflow-worker/postunpack.sh RUN /opt/bitnami/scripts/locales/add-extra-locales.sh ENV AIRFLOW_HOME="/opt/bitnami/airflow" \ BITNAMI_APP_NAME="airflow-worker" \ - BITNAMI_IMAGE_VERSION="2.1.4-debian-10-r20" \ + BITNAMI_IMAGE_VERSION="2.1.4-debian-10-r21" \ C_FORCE_ROOT="True" \ LANG="en_US.UTF-8" \ LANGUAGE="en_US:en" \ diff --git a/bitnami/airflow-worker/2/debian-10/prebuildfs/opt/bitnami/scripts/libos.sh b/bitnami/airflow-worker/2/debian-10/prebuildfs/opt/bitnami/scripts/libos.sh index 4265aae0a673..6bd564773acb 100644 --- a/bitnami/airflow-worker/2/debian-10/prebuildfs/opt/bitnami/scripts/libos.sh +++ b/bitnami/airflow-worker/2/debian-10/prebuildfs/opt/bitnami/scripts/libos.sh @@ -39,18 +39,24 @@ group_exists() { # Arguments: # $1 - group # Flags: +# -i|--gid - the ID for the new group # -s|--system - Whether to create new user as system user (uid <= 999) # Returns: # None ######################### ensure_group_exists() { local group="${1:?group is missing}" + local gid="" local is_system_user=false # Validate arguments shift 1 while [ "$#" -gt 0 ]; do case "$1" in + -i|--gid) + shift + gid="${1:?missing gid}" + ;; -s|--system) is_system_user=true ;; @@ -64,6 +70,13 @@ ensure_group_exists() { if ! group_exists "$group"; then local -a args=("$group") + if [[ -n "$gid" ]]; then + if group_exists "$gid" ; then + error "The GID $gid is already in use." >&2 + return 1 + fi + args+=("--gid" "$gid") + fi $is_system_user && args+=("--system") groupadd "${args[@]}" >/dev/null 2>&1 fi @@ -74,7 +87,9 @@ ensure_group_exists() { # Arguments: # $1 - user # Flags: +# -i|--uid - the ID for the new user # -g|--group - the group the new user should belong to +# -a|--append-groups - comma-separated list of supplemental groups to append to the new user # -h|--home - the home directory for the new user # -s|--system - whether to create new user as system user (uid <= 999) # Returns: @@ -82,7 +97,9 @@ ensure_group_exists() { ######################### ensure_user_exists() { local user="${1:?user is missing}" + local uid="" local group="" + local append_groups="" local home="" local is_system_user=false @@ -90,10 +107,18 @@ ensure_user_exists() { shift 1 while [ "$#" -gt 0 ]; do case "$1" in + -i|--uid) + shift + uid="${1:?missing uid}" + ;; -g|--group) shift group="${1:?missing group}" ;; + -a|--append-groups) + shift + append_groups="${1:?missing append_groups}" + ;; -h|--home) shift home="${1:?missing home directory}" @@ -111,7 +136,15 @@ ensure_user_exists() { if ! user_exists "$user"; then local -a user_args=("-N" "$user") - $is_system_user && user_args+=("--system") + if [[ -n "$uid" ]]; then + if user_exists "$uid" ; then + error "The UID $uid is already in use." + return 1 + fi + user_args+=("--uid" "$uid") + else + $is_system_user && user_args+=("--system") + fi useradd "${user_args[@]}" >/dev/null 2>&1 fi @@ -122,6 +155,15 @@ ensure_user_exists() { usermod -g "$group" "$user" >/dev/null 2>&1 fi + if [[ -n "$append_groups" ]]; then + local -a groups + read -ra groups <<< "$(tr ',;' ' ' <<< "$append_groups")" + for group in "${groups[@]}"; do + ensure_group_exists "$group" + usermod -aG "$group" "$user" >/dev/null 2>&1 + done + fi + if [[ -n "$home" ]]; then mkdir -p "$home" usermod -d "$home" "$user" >/dev/null 2>&1 @@ -403,3 +445,4 @@ generate_sha_hash() { local -r algorithm="${2:-1}" echo -n "$str" | "sha${algorithm}sum" | awk '{print $1}' } + diff --git a/bitnami/airflow-worker/README.md b/bitnami/airflow-worker/README.md index 7615f22b31bb..e8172d9ff2a9 100644 --- a/bitnami/airflow-worker/README.md +++ b/bitnami/airflow-worker/README.md @@ -33,7 +33,7 @@ You can find the default credentials and available configuration options in the Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/). -* [`2`, `2-debian-10`, `2.1.4`, `2.1.4-debian-10-r20`, `latest` (2/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-airflow-worker/blob/2.1.4-debian-10-r20/2/debian-10/Dockerfile) +* [`2`, `2-debian-10`, `2.1.4`, `2.1.4-debian-10-r21`, `latest` (2/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-airflow-worker/blob/2.1.4-debian-10-r21/2/debian-10/Dockerfile) * [`1`, `1-debian-10`, `1.10.15`, `1.10.15-debian-10-r186` (1/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-airflow-worker/blob/1.10.15-debian-10-r186/1/debian-10/Dockerfile) Subscribe to project updates by watching the [bitnami/airflow GitHub repo](https://github.com/bitnami/bitnami-docker-airflow-worker).