Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć wypełniony obraz Docker MySQL w czasie kompilacji?

W tym tygodniu natknąłem się na ten sam problem. Znalazłem działające rozwiązanie bez potrzeby --volumes-from

Problem, który już wspomniano, polega na tym, że /var/lib/mysql jest woluminem, a ponieważ Docker nie będzie obsługiwał UNVOLUME w niedalekiej przyszłości jest to plik Dockerfile, nie możesz użyć tej lokalizacji do przechowywania bazy danych, jeśli chcesz domyślnie zacząć od pustej bazy danych. (https://github.com/docker/docker/issues/18287 ). Dlatego nadpisuję etc/mysqld.my.cnf , dając mysql nowy katalog danych.

Wraz z odpowiedzią pwesa, możesz utworzyć Dockerile w ten sposób:

FROM mysql:5.6

ENV MYSQL_DATABASE db
ENV MYSQL_ROOT_PASSWORD pass
COPY db.sql /docker-entrypoint-initdb.d/db.sql
COPY my.cnf /etc/mysql/my.cnf
RUN /entrypoint.sh mysqld & sleep 30 && killall mysqld
RUN rm /docker-entrypoint-initdb.d/db.sql

Jedyna zmiana jest w my.cnf to lokalizacja katalogu danych:

.... 
[mysqld]
skip-host-cache
skip-name-resolve
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql2 <-- can be anything except /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
explicit_defaults_for_timestamp
....


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nie można uruchomić MySQL w systemie Mac OS 10.6 Snow Leopard

  2. Nieprawidłowa wartość zwrócona z mysql float

  3. Jak uzyskać dostęp do MySQL za pomocą głównego użytkownika MySQL?

  4. Jak wykonać polecenie MySQL z hosta do kontenera z uruchomionym serwerem MySQL?

  5. MySQL - Zamów zapytanie i wyświetl jeden losowy wiersz u góry