具有提示符的docker-compose脚本....更好的解决方案?

时间:2018-03-16 16:06:18

标签: bash docker docker-compose

我有一个 bash脚本来启动各种docker-compose.yml(s)

其中一个组合实例是docker-compose.password.yml,用于为mysql创建密码文件。为此,我需要提示用户输入用户名,然后在docker中运行服务(实际上没有运行)。

基本上我能想到的唯一方法是在空闲状态下运行docker,执行命令并关闭docker。还有更好的方法吗?

(更容易直接使用docker run,但是我必须检查图像是否已经可用并且在各种docker-compose.ymls中加上图像定义,现在也在bash脚本中)

XXXXXXXXXX 我的解决方案:

搬运工-compose.password.yml

version: '2'
services:
  createpw:
    command:
      top -b -d 3600

然后

docker-compose -f docker-compose.password.yml up -d

通过我的bash脚本在docker之外提示用户输入凭据

read -p "Input user name.echo $’\n> ’" username

并将其发送到正在运行的docker

docker exec createpw /bin/bash -c "mysql_config_editor set --user=${username} --password"

然后docker-compose down

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

尝试过但没有工作: 我试着在命令

下只提供一个小的下标提示输入
command:
  /bin/bash /somewhere/createpassword.sh

这确实产生了文件,但是用户是一个空字符串,因为提示没有停止docker执行。如果我使用compose -d也无关紧要。

欢迎任何建议。感谢。

0 个答案:

没有答案