DevOps зарисовки

Задача: есть докер с некоторым сервисом. Нужно динамически добавлять и удалять пользователей внутри контейнера через скрипт. При этом иметь скрипт инициализации на случай деплоя с нуля.

Решение: нужно через bash, а даже через sh (в alpine по дефолту не установлен bash) уметь добавлять пользователей.

Варианты:

PASSWD="somepassword" ; echo -e "$PASSWDn$PASSWD" 
|docker exec -i container passwd

Еще предлагают варианты добавить флаг

passwd --stdin

У меня такой вариант не сработал. Т.е. скрипт отрабатывает, но пароль в итоге не выставился нужный. Какой был установлен — не понял. Мой финальный вариант с добавлением пользователя и сменой пароля выглядит так:

#!/bin/sh
PASS='job'; echo -e "$PASSn$PASS" 
|docker exec -i container adduser geek
echo "geek:$PASS" |docker exec -i container chpasswd

Такой скрипт сработал. Он добавляет пользователя и устанавливает ему пароль. Судя по всему в первом проходе при добавлении пользователя пароль “бьется” или вовсе не передается на вход, но при этом мы обходим интерактивность (так как adduser просит задать пароль в интерактивном режиме).

Если знаете как сделать лучше — напишите в комментарии, пожалуйста. А я пока заюзал такой вариант и он решает мои задачи.

UPD

Посоветовали одну репу, в которой есть примеры скриптов для работы с пользователями внутри докера: https://github.com/schors/tgdante2/tree/master/dante/files/scripts