我可以使用mysql Dockerfile来构建本地构建的mysql数据库吗?

时间:2019-07-17 11:09:59

标签: mysql docker dockerfile docker-image

我对Docker以及与之相关的一切都是全新的。在上学期中,我使用mysql Workbench在本地构建mysql数据库,并将Java项目连接到该数据库。今年,我需要在Docker容器中运行它。我已经从GitHub中提取了Dockerfile,并且正在使用Portainer来管理Docker。

我的老师想要以下内容: 他希望我将代码放入他为我创建的存储库中 然后,他想拉我的项目,该项目应该包括一个Dockerfile,这样他就不需要手动重建我的mysql数据库。

那么我该怎么做?我需要更改mysql Dockerfile吗?还是我应该使用默认值,然后在我的javacode中初始化我的数据库?

这是我在stackoverflow上的第一篇文章,我的编程水平不是那么高(只有2年Java经验),因此,如果我能为您提供更多信息,请告诉我。我希望这是在此处发布问题的正确方法。

感谢所有帮助我的人!

招财,卢西奥

1 个答案:

答案 0 :(得分:0)

您还需要将sql文件放置在GitHub上,并且应该可以从您的docker环境中访问它。

  

首次启动容器时,将使用   指定的名称将创建并使用提供的名称进行初始化   配置变量。此外,它将执行带有   在.sh,.sql和.sql.gz中找到的扩展名   /docker-entrypoint-initdb.d。文件将按字母顺序执行   订购。   docker-hub-mysql

是的,还需要修改Dockerfile,这是示例。

这将构建基于mysql8的docker映像,将从GitHub下载sql文件,并将初始化数据库名称classicmodels,这意味着在启动时将执行任何有效的SQL文件。

FROM mysql:8
RUN apt update && apt install curl -y
RUN curl -0 https://raw.githubusercontent.com/Adiii717/doctor-demo-app/master/sample_database.sql > /docker-entrypoint-initdb.d/sampledb.sql

构建docker映像

docker build -t mysql8 .

运行docker容器

docker run --rm --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -it mysql8

enter image description here