mysql.dockerfile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. FROM buildpack-deps:bionic
  2. ADD create.sql create.sql
  3. ADD my.cnf my.cnf
  4. ADD mysql.list mysql.list
  5. RUN cp mysql.list /etc/apt/sources.list.d/
  6. RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8C718D3B5072E1F5
  7. RUN apt-get update > /dev/null
  8. RUN apt-get install -yqq locales > /dev/null
  9. RUN locale-gen en_US.UTF-8
  10. ENV LANG en_US.UTF-8
  11. ENV LANGUAGE en_US:en
  12. ENV LC_ALL en_US.UTF-8
  13. # https://bugs.mysql.com/bug.php?id=90695
  14. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-server mysql-server/lowercase-table-names select Enabled\""]
  15. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/data-dir select 'Y'\""]
  16. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/root-pass password secret\""]
  17. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/re-root-pass password secret\""]
  18. RUN echo "Installing mysql-server version: $(apt-cache policy mysql-server | grep -oP "(?<=Candidate: )(.*)$")"
  19. RUN DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server > /dev/null
  20. RUN mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
  21. RUN cp my.cnf /etc/mysql/my.cnf
  22. RUN rm -rf /ssd/mysql
  23. RUN rm -rf /ssd/log/mysql
  24. RUN cp -R -p /var/lib/mysql /ssd/
  25. RUN cp -R -p /var/log/mysql /ssd/log
  26. RUN mkdir -p /var/run/mysqld
  27. RUN chown -R mysql:mysql /var/lib/mysql /var/log/mysql /var/run/mysqld /ssd && \
  28. (mysqld &) && \
  29. until mysqladmin -uroot -psecret ping; do sleep 1; done && \
  30. mysqladmin -uroot -psecret flush-hosts && \
  31. mysql -uroot -psecret < create.sql && \
  32. mysqladmin -uroot -psecret shutdown && \
  33. chown -R mysql:mysql /var/lib/mysql /var/log/mysql /var/run/mysqld /ssd
  34. CMD ["mysqld"]