Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बिल्ड टाइम पर पॉपुलेटेड MySQL डॉकर इमेज कैसे बनाएं?

मैं इस सप्ताह उसी समस्या में भाग गया। मुझे --volumes-from . की आवश्यकता के बिना एक कार्यशील समाधान मिल गया है

समस्या जो पहले ही बताई जा चुकी है वह यह है कि /var/lib/mysql एक वॉल्यूम है, और चूंकि डॉकर UNVOLUME . का समर्थन नहीं करेगा निकट भविष्य में इसके Dockerfile में, यदि आप डिफ़ॉल्ट रूप से एक खाली डेटाबेस के साथ प्रारंभ करना चाहते हैं, तो आप अपने डेटाबेस संग्रहण के लिए इस स्थान का उपयोग नहीं कर सकते हैं। (https://github.com/docker/docker/issues/18287 ) इसलिए मैं etc/mysqld.my.cnf . को अधिलेखित कर देता हूं , mysql को एक नया डेटादिर दे रहा है।

pwes' उनके उत्तर के साथ, आप इस तरह से एक डॉकरील बना सकते हैं:

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

केवल my.cnf . में ही बदलाव है दातादिर का स्थान है:

.... 
[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. MySQL में विदेशी कुंजी नहीं छोड़ सकता

  2. MySQL विंडोज़ पर डेटाबेस फाइल्स को कहाँ स्टोर करता है और फाइलों के नाम क्या हैं?

  3. MySQL में विशिष्ट स्तंभों के अद्यतन के बाद ट्रिगर सक्रिय करें

  4. mysql_real_escape_string के साथ php filter_var का उपयोग करना

  5. लोचदार खोज के लिए मैसकल क्वेरी