나는 다음과 같은 Dockerfile 몇 가지 문제에 봉착 : 나는 슬림 PHP 프레임 워크를 사용하여 연결을 시도하고있어"연결이 거부 됨"을 도커 컨테이너 내부에서 DB에 연결을 시도 할 때
FROM php:7.0-apache
RUN a2enmod rewrite
RUN docker-php-ext-install pdo pdo_mysql
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/
을 예외가 발생 코드 여기
HTTP/1.1 500 Internal Server Error Content-Type: text/html {"error": {"text": SQLSTATE[HY000] [2002] Connection refused}
것 :
// Instantiate a database connection
$container['db'] = function ($c) {
try {
$db = $c['settings']['db'];
$pdo = new PDO("mysql:host=" . $db['host'], $db['user'], $db['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
//Create database if not exists
$dbname = "`".str_replace("`","``",$db['dbname'])."`";
$pdo->query("CREATE DATABASE IF NOT EXISTS $dbname");
$pdo->query("use $dbname");
//Create tables if not exists
$pdo->query(
"CREATE TABLE IF NOT EXISTS `Assets` (
`id` INT AUTO_INCREMENT NOT NULL,
`first_property` varchar(50),
`second_property` varchar(50),
PRIMARY KEY (`id`))"
);
return $pdo;
} catch (PDOException $e) {
return $c['response']
->withStatus(500)
->withHeader('Content-Type', 'text/html')
->write('{"error": {"text": ' . $e->getMessage() . '}');
}
};
,536를 데이터베이스하지만, 다음과 같은 오류를 반환
누구에게 문제가 있는지 알 수 있습니까?
미리 감사드립니다.
은 PHP 코드와 동일한 컨테이너에있는 데이터베이스입니까? –
^데이터베이스가 어디에 있습니까? –
아무 것도 없습니다. 코드가 없으면 코드가 생성 될 것이라고 생각했습니다. 내가 하나를 포함해야하는지, 그렇다면 어디서 어떻게 포함해야하는지 말해 줄 수 있습니까? 고마워요. – UrmLmn