我创建了以下dockerfile
FROM mysql:8.0
CMD ["mysqld", "--default-authentication-plugin=mysql_native_password"]
但是,当我在运行后尝试连接到它时,我在节点应用程序中得到了以下信息
错误:getaddrinfo ENOTFOUND mysql mysql:3306
我在dockerfile中做错了吗?我只想在运行该图像时始终添加该参数。使用不支持通过其接口传递命令参数的Gitlab CI,也不能直接使用docker run
命令。
答案 0 :(得分:0)
发现我的问题,与gitlab CI有关,而不与docker有关。
我将映像标记为mysql-native-auth
,这意味着在gitlab CI中指定要连接的主机时,您必须使用mysql-native-auth
而不是mysql
,因为服务的映像名称显然是确定这一点(除非您指定别名)
文档:https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services
services: - tutum/wordpress:latest
如果未指定服务别名,则在运行作业时,将启动tutum / wordpress,您将可以从构建容器中使用以下两个主机名访问它:
- tutum-wordpress
- tutum__wordpress