我试图给用户一个 web
用户可以在其中编写 query
然后我会执行这个 query
在我的 server
.
我正在使用以下
MySQL docker
图像与 latest tag
即。 mysql:latest
```
https://hub.docker.com/_/mysql/
所以我用这个命令运行docker映像
docker run -it --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -v /root/ServerCode/:/usercode mysql /bin/bash
我的 `root/ServerCode` 目录包含 `script` 我想用来跑步 `mysql` 服务器和用户的 `query` .
我的 `script` 是
!/bin/bash
set -e
/etc/init.d/mysqld start
它给了我 `error` ```
bash: /etc/init.d/mysqld: No such file or directory
我也试过用这个
service mysqld start
它也在给予 error
```
mysqld: unrecognized service
编辑:
!/bin/bash
set -e
exec 1> $"/usercode/logfile.txt"
exec 2> $"/usercode/errors"
These output and error files are in mounted folder which i check after running script
/etc/init.d/mysqld start // run sql server here
here i want to run that query and then get out of conatiner `
2条答案
按热度按时间g9icjywg1#
如果mysqld是参数,entyrypoint scit只执行initdb;在您的例子中,它看到bash,因此跳过initdb,只运行带有参数的bash。
如果您只是想在mysql运行后运行一些安装脚本,那么您是否查看了/docker-entrypoint-initdb.d/?
创建docker-compose.yml
创建conf文件夹并将my.cnf文件添加到其中
在conf文件夹中创建docker entrypoint initdb.d文件夹以及该文件夹中的所有sql文件
这棵树看起来像这样
您可以将任何.sh文件或.sql文件放在其中,它们将在容器外部的mysql服务可用之前运行/导入。
hi3rlvi22#
尝试在mysql docker容器中运行“/etc/init.d/mysqld start”/根/服务器是主机路径。mysql已安装在容器中,而不是主机中。请不要在主机上运行“/etc/init.d/mysqld start”。