折腾了挺久,前提是需要在基础镜像里设置数据库的免密码登录

编写run.sh,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
set -e #如果语句有错误,则立马停止执行
#查看mysql服务的状态,方便调试,这条语句可以删除
echo `service mysql status`
#这条是因为基础镜像的mysql服务无法正常启动。
chown -R mysql:mysql /var/lib/mysql
echo '1.启动mysql....'
#启动mysql
service mysql start
sleep 3
echo `service mysql status`
#此处其实密码不一定重要,事先在基础镜像里设置了免密码登录。
mysql -uroot -proot
echo '2.开始导入数据....'
#导入数据
mysql < /var/www/html/day1.sql #这里要注意路径
echo '3.导入数据完毕....'
sleep 3
echo `service mysql status`
#sleep 3
echo `service mysql status`

Dockerfile的内容如下:

1
2
3
4
5
6
7
FROM zhhhy/lampp #基础镜像

ADD ./day1/ /var/www/html #把day1文件夹的内容复制到/var/www/html中
RUN ls /var/www/html/ # 这里方便观察文件是否成功复制进入
RUN chmod 777 /var/www/html/run.sh #给run.sh文件执行权限
CMD ["sh","/var/www/html/run.sh"] #最后执行run.sh
EXPOSE 80