2017-05-14 121 views
0

我有一个脚本构建我的docker env。 我有这样一行:Ubunto docker sh mysql脚本运行

docker exec -it guac-mysql /bin/bash 
mysql -u root -p123456 
CREATE DATABASE guacamole; 
CREATE USER 'guacamole' IDENTIFIED BY 123456; 
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'; 
FLUSH PRIVILEGES; 
quit 

当我运行,该脚本获取容器上的庆典,但其他线路不跑,我只是有一个地运行它们之一。 如何执行并注入脚本?

谢谢:)

+0

参见:如何在泊坞窗容器中的一部分执行命令bash shell脚本](http://stackoverflow.com/q/36627980/3776858) – Cyrus

+0

mysql:command not found – user3712353

回答

0

您不能将其作为单个脚本运行。 docker exec命令将在容器中创建一个shell。它将不会运行其余部分,直到您退出容器。然后它会运行mysql等等

你需要运行docker exec -it guac-mysql /bin/bash

,然后你可以创建一个单独的脚本来运行容器本身

mysql命令,但当前的脚本赢得”工作。再次,它将运行mysql,然后等待退出运行create database前等

看到从文件中执行脚本的文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html