我想创建一个结合了自定义Maven环境,特定运行时环境和mysql服务器运行时的docker-compose文件。 撰写文件如下所示:
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服务器留下来。
答案 0 :(得分:3)
您应该改用docker-compose exec
,docker-compose run
在新容器中运行命令。