#本文参考了「tutum」的 Dockerfile FROM docker.io/centos:7 MAINTAINER Waitfish WORKDIR /app #设置环境变量,所有操作都是非交互式的 ENV DEBIAN_FRONTEND noninteractive RUN echo "Asia/Shanghai" > /etc/timezone #注意这里要更改系统的时区设置,因为在Web应用中经常会用到时区这个系统变量,默认的centos会让你的应用此程序发生不可思议的效果哦 #安装mysql服务 RUN yum install wget rpm -y #wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm && \ #下载速度太慢 ADD http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm ./ RUN rpm -ivh mysql-community-release-el7-5.noarch.rpm --nosignature RUN yum install mysql57-community-release-el7-7.noarch.rpm -y RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 RUN yum install mysql -y # 删除预安装的数据库文件 RUN rm -rf /var/lib/mysql/* # 添加文件夹下的 MYSQL 配置文件 ADD my.cnf /etc/mysql/conf.d/my.cnf ADD mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf # 添加 MYSQL 的脚本 ADD import_sql.sh /import_sql.sh ADD run.sh /run.sh RUN chmod 755 /*.sh # 设置环境变量,用户名以及秘密 ENV MYSQL_USER admin ENV MYSQL_PASS **Random** # 设置主从复制模式下的环境变量 ENV REPLICATION_MASTER **False** ENV REPLICATION_SLAVE **False** ENV REPLICATION_USER replica ENV REPLICATION_PASS replica # 设置可以允许挂载的卷,可以用来备份数据库和配置文件 VOLUME ["/etc/mysql", "/var/lib/mysql"] # 设置可以映射的端口 EXPOSE 3306 # 设置自启动的脚本 CMD ["/run.sh"]