gpt4 book ai didi

docker - Docker Compose-getaddrinfo失败:名称或服务未知

转载 作者:行者123 更新时间:2023-12-02 21:03:29 26 4
gpt4 key购买 nike

尝试访问我的PHP容器时遇到mysql连接问题(正在建立与MariaDB容器的连接)

mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/html/config.php on line 16



看来PHP容器不知道我的MariaDB容器。配置似乎如何。如果公开数据库容器,则可以在本地连接到它。

docker-compose.yaml
version: "3"
networks:
api_server:
services:
db:
image: mariadb
restart: always
volumes:
- ./mariadb_data:/var/lib/mysql
- ./database_dump/dump.sql:/docker-entrypoint-initdb.d/dump.sql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: user
MYSQL_PASSWORD: pass
MYSQL_DATABASE: somedb
php-server:
image: php.core.image
networks:
- api_server
build:
context: ./php
dockerfile: Dockerfile
depends_on:
- db
environment:
ENV_NAME: dev
ports:
- 80:80

适用于PHP的Dockerfile
FROM php:7.2-apache
RUN docker-php-ext-install -j$(nproc) mysqli

COPY . /var/www/html/

而我在php中的连接如下所示:
define('DB_SERVER', 'db');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'somedb');

$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

最佳答案

php-server服务在api_server网络中,而db在默认网络中。

您需要将db添加到与php-server相同的网络-要么添加到api_server网络,要么添加另一个网络并向其中添加两个服务。

关于docker - Docker Compose-getaddrinfo失败:名称或服务未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59368736/

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