gpt4 book ai didi

mysql - 使用数据库和表对 MySQL 进行 Dockerize

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:47 26 4
gpt4 key购买 nike

我想从 Dockerfile 创建一个带有初始数据库及其表的 MySQL 容器。

我还有一个特定的 /etc/mysql/mysql.conf.d/mysqld.cnf 文件(我可以简单地在 Dockerfile 中使用 ADD 指令。)

我希望我的 Dockerfile 使用名为 DBNAME 的数据库和下表创建一个 MySQL 镜像:

CREATE TABLE utente (
ID int NOT NULL AUTO_INCREMENT,
nome VARCHAR(255),
cognome VARCHAR(255),
username VARCHAR(255),
password VARCHAR(255),
PRIMARY KEY (ID)
);

CREATE TABLE sdplines (
ID int NOT NULL AUTO_INCREMENT,
value VARCHAR(255),
session_id VARCHAR(255),
u_id int,
PRIMARY KEY (ID),
FOREIGN KEY (u_id) REFERENCES utente(ID)
);

我已经在这里搜索以解决我的问题,但我没有找到解决方案。

最佳答案

将您的 .sql 文件复制到 docker-entrypoint-initdb.d 目录中。

.sql文件:

CREATE DATABASE  IF NOT EXISTS `your_db_name`
...

docker 文件:

FROM mysql:5.7.17

MAINTAINER ...

ENV MYSQL_ROOT_PASSWORD=...
ENV MYSQL_DATABASE=your_db_name

COPY your_file.sql /docker-entrypoint-initdb.d/

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["mysqld"]

引用:https://hub.docker.com/_/mysql/ ,“初始化新实例”部分:

When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions .sh, .sql and .sql.gz that are found in /docker-entrypoint-initdb.d

关于mysql - 使用数据库和表对 MySQL 进行 Dockerize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44239766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com