Wpis z mikrobloga

#linux #docker

Chciałbym zautomatyzować proces dodawania użytkownika w jednym z kontenerów. Napisałem więc skrypt który będzie uruchamiał wszystkie potrzebne komendy za pomocą docker exec. Problem polega na tym, że w momencie gdy przy adduser trzeba wpisać hasło, shell pomija ten krok i idzie od razu dalej (nie czeka na działanie użytkownika). Ma ktoś pomysł co zrobić żeby działało poprawnie? Nawet nie wiem jak o to zapytać Google.

#!/bin/bash

echo "Type new username"
read new_username

cat <<EOF | sudo docker exec -i my_container sh
echo "Creating user..."
adduser ${new_username}
# dalsze komendy...
EOF
  • 5
@najpierw_robic_potem_myslec:

docker exec --help


Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]


Run a command in a running container


Options:

-d, --detach Detached mode: run command in the background

--detach-keys string Override the key sequence for detaching a container

-e, --env list Set environment variables

--env-file list Read in a file of environment variables

-i, --interactive Keep STDIN open even if not attached

--privileged Give extended privileges to the command

-t, --tty