Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

131
Views
Contenedor de múltiples etapas Mariadb con una base de datos existente

Necesito crear un contenedor con una base de datos existente y realizar algunas acciones en él antes de distribuirlo. En producción, tengo algunas bases de datos realmente grandes:

 [root]# ls /home/db-backup/test/prepare/26_06_2020/full/ ibdata1 ib_logfile0 ib_logfile1 ibtmp1 mysql performance_schema my_existing_database1 my_existing_database2 my_existing_database3

Solo necesito publicar un contenedor con my_existing_database1 para mi equipo.

Probé muchos Dockerfile pero no puedo encontrar la manera de hacerlo y no entiendo por qué. Aquí un Dockerfile simplificado:

 FROM mariadb:latest as builder ENV MYSQL_ALLOW_EMPTY_PASSWORD yes # for easier debug, i will remove that in prod RUN sed -i '/\[mysqld\]/a plugin-load-add = auth_socket.so' /etc/mysql/my.cnf WORKDIR /initialized-db COPY ibdata1 . COPY mysql ./mysql COPY performance_schema ./performance_schema COPY my_existing_database1 ./my_existing_database1 COPY db-init.sh /docker-entrypoint-initdb.d/ RUN chown mysql:mysql . \ && chmod 660 ibdata1 \ && chmod +x /docker-entrypoint-initdb.d/db-init.sh RUN ["/usr/local/bin/docker-entrypoint.sh", "mysqld", "--datadir", "/initialized-db", "--aria-log-dir-path", "/initialized-db"] # No file named test RUN ls /initialized-db/ FROM mariadb:latest COPY --from=builder /initialized-db /var/lib/mysql

Como puede ver, trato de ejecutar mi script db-init.sh . Versión simplificada:

 #!/bin/bash set -e -x mysql -u root -e "CREATE USER 'test'@'%' IDENTIFIED BY 'test';" touch /initialized-db/test

Desafortunadamente, mi script no se ejecuta porque no se crea la test del archivo. Intento omitir /usr/local/bin/docker-entrypoint.sh con mi propio script (copiar/pegar el archivo con alguna edición) pero tampoco funciona (no se creó la test de usuario y archivo).

¿Puedes ayudarme en esto por favor?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Preferiblemente, debe montar un directorio para los datos y luego distribuirlo extra.

Si debe distribuirlo con el contenedor en sí, debería poder editar la configuración de esa base de datos para usar un directorio de datos personalizado e inicializar sus bases de datos en él con RUN y COPY .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!