gpt4 book ai didi

docker - 尝试通过docker-compose为mariadb运行迁移时出错

转载 作者:行者123 更新时间:2023-12-02 21:11:34 25 4
gpt4 key购买 nike

我正在使用docker-compose在容器中设置Mariadb数据库并运行迁移以使其准备就绪。问题是这样做时出现以下错误:

Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

这使我认为此时尚未在 Dockerfile中建立数据库,但我可能是错的。有任何想法吗?
Dockerfile内容:
FROM mariadb:10.0.37
ADD db /db
WORKDIR /db
RUN mysql --user userExample --password passwordExample < migrate.sql
docker-compose.yaml内容:
version: '3'
services:
db:
build: .
environment:
- MYSQL_USER=userExample
- MYSQL_PASSWORD=passwordExample
networks:
example_network:
ipv4_address: 172.28.1.1

networks:
example_network:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16

最佳答案

您以错误的方式使用Dockerfile,从而使镜像与容器混淆。
RUN命令将失败,因为此时容器甚至不存在,因此没有任何可连接的内容,因此您根本不需要设置Dockerfile。

如果migrate.sql仅需要使用干净的数据库读取一次,则可以将文件安装在/docker-entrypoint-initdb.d/migrate.sql上。您可以在docker-mysql documentation上了解有关此目录的信息。

如果需要从现有数据库中导入它,则只需从主机或另一个容器中运行import命令。

我不建议使用嵌入式数据库创建mysql镜像,因为重新启动容器时所有更改都将丢失。

关于docker - 尝试通过docker-compose为mariadb运行迁移时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54220093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com