2017-05-14 109 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