我需要在启动时在一项服务中创建数据库。 F.e .: 服务:
db:
image: percona:5.7.24-centos
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: db1
MYSQL_DATABASE_1: db2
MYSQL_PASSWORD: password
network_mode: "host"
但是不幸的是,使用图像/环境变量MYSQL_DATABASE
仅支持一个。
我正在docker-compose中使用它
我可以寻求帮助吗?
答案 0 :(得分:1)
因此,编写您自己的Dockerfile并复制sql脚本,它将在映像上创建一个新数据库。 像下面这样
FROM mysql
ENV MYSQL_DATABASE=test \
MYSQL_ROOT_PASSWORD=password \
ADD yourscript.sql /docker-entrypoint-initdb.d/
EXPOSE 3306
因此/docker-entrypoint-initdb.d/
内部的所有scips将在容器启动时执行。实际上,您的第二个数据库创建脚本将放在yourscript.sql
内部,它将在容器启动时执行
您可以使用以下命令构建映像
docker build -t masterdanny/percona:5.7.24-centos
,然后在您的docker-compose文件中使用该新映像
干杯。如果您有任何问题,请告诉我。