mysql.dockerfile 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. FROM buildpack-deps:jammy
  2. ARG MYSQL_VERSION=8.0
  3. ADD create.sql create.sql
  4. ADD my.cnf my.cnf
  5. ARG DEBIAN_FRONTEND=noninteractive
  6. RUN wget -qO - "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x859be8d7c586f538430b19c2467b942d3a79bd29" > \
  7. /etc/apt/keyrings/mysql.asc
  8. RUN echo "deb [ signed-by=/etc/apt/keyrings/mysql.asc ] http://repo.mysql.com/apt/ubuntu jammy mysql-${MYSQL_VERSION}" > \
  9. /etc/apt/sources.list.d/mysql.list
  10. RUN apt-get -yqq update && apt-get -yqq install apt-utils locales
  11. RUN locale-gen en_US.UTF-8
  12. ENV LANG=en_US.UTF-8
  13. ENV LANGUAGE=en_US:en
  14. ENV LC_ALL=en_US.UTF-8
  15. # https://bugs.mysql.com/bug.php?id=90695
  16. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-server mysql-server/lowercase-table-names select Enabled\""]
  17. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/data-dir select 'Y'\""]
  18. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/root-pass password secret\""]
  19. RUN ["/bin/bash", "-c", "debconf-set-selections <<< \"mysql-community-server mysql-community-server/re-root-pass password secret\""]
  20. RUN apt-get -yqq install mysql-server
  21. RUN mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
  22. RUN cp my.cnf /etc/mysql/my.cnf
  23. RUN rm -rf /ssd/mysql
  24. RUN rm -rf /ssd/log/mysql
  25. RUN cp -R -p /var/lib/mysql /ssd/
  26. RUN cp -R -p /var/log/mysql /ssd/log
  27. RUN mkdir -p /var/run/mysqld
  28. RUN chown -R mysql:mysql /var/lib/mysql /var/log/mysql /var/run/mysqld /ssd && \
  29. (mysqld &) && \
  30. until mysqladmin -uroot -psecret ping; do sleep 1; done && \
  31. mysqladmin -uroot -psecret flush-hosts && \
  32. mysql -uroot -psecret < create.sql && \
  33. mysqladmin -uroot -psecret shutdown && \
  34. chown -R mysql:mysql /var/lib/mysql /var/log/mysql /var/run/mysqld /ssd
  35. CMD ["mysqld"]