具有MySQL php\u网络\u getaddresses的Bitbucket管道Laravel
我使用php7.2-fpm-stretch docker image和MySQL作为附加服务。以下命令成功运行:具有MySQL php\u网络\u getaddresses的Bitbucket管道Laravel,laravel,docker,pdo,bitbucket,bitbucket-pipelines,Laravel,Docker,Pdo,Bitbucket,Bitbucket Pipelines,我使用php7.2-fpm-stretch docker image和MySQL作为附加服务。以下命令成功运行: mysql -h 127.0.0.1 -u username -ppassword 但是,当composer想要运行包:discover时,它会出现以下错误: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known .env文件具有以下数据库配置:
mysql -h 127.0.0.1 -u username -ppassword
但是,当composer想要运行包:discover
时,它会出现以下错误:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
.env
文件具有以下数据库配置:
DB_HOST=127.0.0.1
DB_CONNECTION=127.0.0.1
DB_DATABASE=pipeline
DB_USERNAME=username
DB_PASSWORD=password
我的yml文件如下:
image: php:7.2-fpm-stretch
pipelines:
default:
- step:
caches:
- composer
script:
- apt-get update && apt-get install -qy git unzip mysql-client
#Some other non-related configuration
- composer install
- php artisan key:generate
services:
- mysql
definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: 'pipeline'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: 'username'
MYSQL_PASSWORD: 'password'
不知道bitbucket管道,但我猜2个映像最终将启动2个容器,
DB_HOST=127.0.0.1
如何能够用于从一个容器到另一个容器的连接,因为它们总共是2个实例?只是猜测而已。除非bitbucket管道具有将2个图像合并到1个容器的魔力。。。那真是太神奇了!呃,也许它可以定义一些网络,就像k8s吊舱,像吊舱里的容器在"逻辑主机"上运行,;它们使用相同的网络名称空间(换句话说,相同的IP地址和端口空间)。如果bitbucket管道也这样做了,请忘记这一点……是的,因为bitbucket本身有文档,其中提到使用127.0.0.1访问mysql连接的服务。你有没有发现这一点?是的,忘记发布答案。您应该确保bitbucket管道env变量和.env文件变量具有不同的名称。如果这对你有帮助,请让我知道,我将其作为其他人的答案发布。如果bitbucket环境变量与.env变量同名,请重命名它们。