Docker-compose: служба MySQL не работает

Я хочу создать файл для создания докеров, сочетающий пользовательскую среду maven, конкретную среду выполнения и среду выполнения сервера mysql. Составной файл выглядит так:

version: '3.7'
services:
  mysql:
    image: mysql:5.7.25
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_DATABASE: dbname
      MYSQL_USER: dbuser
      MYSQL_ROOT_PASSWORD: dbpass
    volumes:
      - ./mysql:/tmp

  maven:
    build: 
      context: ./maven
      args:
        git_user: gituser
        git_pw: gitpw
    command: tail -F anything

  runtime:
    image: custom_dockerhub_image
    links:
      - "mysql:db"
      - "maven:mav"
    volumes:
      - ./:/tmp
    command: tail -F anything

Все службы запущены и работают, и каждый том привязан. Я хочу запустить определенный скрипт mysql в моем контейнере mysql для настройки моей базы данных. Моя первая ручная попытка состояла в том, чтобы просто использовать

docker-compose run mysql mysql --user = "dbuser" --password = "dbpass" < "mysql/01_schema.sql"

Единственный ответ, который я получаю, это

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Кроме того, я пытался использовать

docker-compose run mysql service mysql start && mysql --user = "dbuser" --password = "dbpass" < "mysql/01_schema.sql"

Результат был

..
[info] MySQL Community Server 5.7.25 is started.
zsh: command not found: mysql

Я не могу заставить сервер mysql остаться.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
0
1 146
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого вы должны использовать docker-compose exec, docker-compose run запускает команду в новом контейнере.

Работал как шарм! Доку следует читать внимательнее. Спасибо !

DerPauli 15.04.2019 15:13

Другие вопросы по теме