Как заполнить mariaDB в контейнере Docker? - PullRequest
0 голосов
/ 29 августа 2018

Я хочу добавить таблицу в базу данных MariaDB внутри контейнера Docker.

Рассмотрим файлы tree

$ tree
├── Dockerfile
└── sql
    └── test.sql

с Dockerfile

FROM mariadb:latest

COPY sql/test.sql /docker-entrypoint-initdb.d/

ENV MYSQL_ROOT_PASSWORD test123
ENV MYSQL_DATABASE testDB
ENV MYSQL_USER toto
ENV MYSQL_PASSWORD test123

RUN apt-get update && apt-get -y install vim

EXPOSE 3306

CMD ["mysqld"]

И файл sql

$ cat sql/test.sql 
CREATE TABLE IF NOT EXISTS test (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(32) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO test (name) VALUES
('Toto'),
('Jack'),
('Titi');

Я использую build --tag=mariadbtest ., чтобы создать образ и запустить его с

docker run --name mariadb -ti -d -p 3307:3306 mariatest

когда я вхожу с

mysql --host=0.0.0.0 --port=3307 mysql -u root -p

Я не могу найти тест таблицы. Как я могу добавить таблицы в базу данных?

1 Ответ

0 голосов
/ 30 сентября 2018

Вместо того чтобы заставить Docker инициализировать вещи, сделайте это, как только вы подключитесь в первый раз:

CREATE DATABASE testDB;   -- (or was it mariadbtest??)
USE testDB;               -- (same as above)
CREATE TABLE ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...