Я пытаюсь запустить Docker-контейнер MySQL со скриптом инициализации.Мой Dockerfile выглядит следующим образом:
FROM node:11
WORKDIR /usr/src/app
COPY ./init.sql /docker-entrypoint-initdb.d/
COPY . .
RUN npm install
ENV PORT=8000
EXPOSE ${PORT}
CMD [ "npm", "start" ]
И у меня есть файл init.sql в двух местах: домашний каталог, а также папка docker-entrypoint-initdb.d /.Файл init.sql содержит только операторы создания таблиц и вставки.Я запускаю свои команды Docker в следующем порядке:
//start network
docker network create --driver bridge mysql-net
//launch docker mysql container with init script to create tables & data
docker run -d --name mysql-server --network mysql-net -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=rootpassword" -e "MYSQL_DATABASE=yelplikeapp" -e "MYSQL_USER=yelplikeapp" -e "MYSQL_PASSWORD=hunter2" -v "/c/Users/marti/Documents/projectFolder:/docker-entrypoint-initdb.d" mysql:5
запуск контейнера mysql-server работает изначально, но через пару секунд, когда я запускаю 'docker ps -a', я вижу, что он завершается каккак только он запускается:
![enter image description here](https://i.stack.imgur.com/Asclq.png)
Почему мой контейнер mysql-сервера завершается?Я пытался зайти в контейнер и просмотреть базу данных, чтобы убедиться, что все таблицы были созданы успешно.Но у меня возникли проблемы с этим и я думаю, что это корень проблемы.
Ради прозрачности я выложу свой полный файл init.sql: Когда я проверяю логи для mysql-сервера, естьсообщение об ошибке ERROR 1050 (42S01) в строке 1: таблица 'users' уже существует
drop database yelplikeapp;
create database yelplikeapp;
use yelplikeapp;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS businesses;
DROP TABLE IF EXISTS photos;
DROP TABLE IF EXISTS reviews;
SET FOREIGN_KEY_CHECKS = 1;
CREATE TABLE users (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO users(id, username) VALUES
( NULL, 'brungoTungis' ),
( NULL, 'kramer' ),
( NULL, 'elaine');
CREATE TABLE businesses (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
ownerid MEDIUMINT NOT NULL,
name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
city VARCHAR(255) NOT NULL,
state VARCHAR(255) NOT NULL,
zip VARCHAR(255) NOT NULL,
phone VARCHAR(255) NOT NULL,
category VARCHAR(255) NOT NULL,
subcategory VARCHAR(255) NOT NULL,
website VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (ownerid) REFERENCES users(id) ON DELETE CASCADE
);
INSERT INTO businesses(id, ownerid, name, address, city, state, zip, phone, category, subcategory, website, email) VALUES ( NULL, 1, 'taco bell', '1157th ave nw', 'corvallis', 'or', '98023', '423-232-1313', 'fastfood', 'mexican', 'www.tacobell.com', 'tacobell@gmail.gov' ), ( NULL, 1, 'kfc', '1158th ave nw', 'seattle', 'wa', '98223', '423-232-993', 'fastfood', 'chicken', NULL, NULL );
CREATE TABLE photos (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
userid MEDIUMINT NOT NULL,
businessid MEDIUMINT NOT NULL,
caption VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (userid) REFERENCES users(id),
FOREIGN KEY (businessid) REFERENCES businesses(id) ON DELETE CASCADE
);
INSERT INTO photos(id, userid, businessid, caption) VALUES
( NULL, 2, 1, 'coolcaption' ),
( NULL, 3, 2, NULL ),
( NULL, 3, 1, 'badcaption');
CREATE TABLE reviews (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
userid MEDIUMINT NOT NULL,
businessid MEDIUMINT NOT NULL,
dollars MEDIUMINT NOT NULL,
stars MEDIUMINT NOT NULL,
review VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (userid) REFERENCES users(id),
FOREIGN KEY (businessid) REFERENCES businesses(id)
);
INSERT INTO reviews(id, userid, businessid, dollars, stars, review) VALUES
( NULL, 2, 1, 2, 3, 'mycoolreview' ), ( NULL, 1, 2, 2, 3, NULL );