首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker构建失败

Docker构建失败
EN

Stack Overflow用户
提问于 2019-04-18 12:01:40
回答 1查看 1.9K关注 0票数 0

跟随this tutorial

本教程提供GitHub account上的文件。

我将我的目录命名为DOCKER-PHP-MYSQL,如下所示:

代码语言:javascript
复制
DOCKER-PHP-MYSQL
> db
  - Dockerfile
> src
  - index.php
> www
  - Dockerfile
development.env
docker-compose.yml

现在,我的代码完全匹配git存储库中的所有内容,但为了便于讨论,我将粘贴每个文件中的内容。

DB Dockerfile:

代码语言:javascript
复制
FROM mysql:8.0

在源文件中,index.php文件:

代码语言:javascript
复制
<?php
$mysqli = new mysqli('tut07-db', getenv('MYSQL_USER'), getenv('MYSQL_PASSWORD'), 'information_schema');
if ($mysqli->connect_error) 
{
  echo 'Connection Error [', $mysqli->connect_errno, ']: ', $mysqli->connect_error;
} 
else 
{
  echo 'MySQLi Connected Successfully!';
}   
?>

下面是www Dockerfile:

代码语言:javascript
复制
FROM php:7.2-apache

RUN docker-php-ext-install mysqli
RUN docker-php-ext-enable mysqli

RUN docker-php-ext-install xdebug
RUN docker-php-ext-enable xdebug

下面是development.env:

代码语言:javascript
复制
MYSQL_USER=sys_admin
MYSQL_PASSWORD=sys_password
MYSQL_ROOT_PASSWORD=root_password

最后,docker-compose.yml:

代码语言:javascript
复制
version: "3"

networks:
  tut07-frontend:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.10.1.0/24
  tut07-backend:
    driver: bridge
    ipam: 
      driver: default
      config:
        - subnet: 172.10.2.0/23

services:
  tut07-db:
    build: ./db
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - 3306:3306
    networks:
      tut07-backend:
        ipv4_address: 172.10.3.2
    env_file:
      - ./development.env
  tut07-www:
    build: ./www
    ports:
      - 8080:80
    volumes:
      - ./src:/var/www/html/
    networks:
      tut07-backend:
        ipv4_address: 172.10.2.2
      tut07-frontend:
        ipv4_address: 172.10.1.2
    depends_on:
      - tut07-db
    env_file:
      - ./development.env

唯一不同的是,我将我的主文件夹命名为DOCKER-PHP-MYSQL,而教程将其命名为tutorial-07。

话虽如此,在运行命令"docker-compose up“时,我在终端中收到以下错误:

error: /usr/src/php/ext/xdebug does not exist

usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name ...] ie: /usr/local/bin/docker-php-ext-install gd mysqli /usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop

if custom ./configure arguments are necessary, see docker-php-ext-configure

Possible values for ext-name: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip

Some of the above modules are already compiled into PHP; please check the output of "php -i" to see which modules are already loaded. ERROR: Service 'tut07-www' failed to build: The command '/bin/sh -c docker-php-ext-install xdebug' returned a non-zero code: 1

有没有人知道这个问题以及如何解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 21:59:20

从www Dockerfile文件中删除以下行后,我终于能够连接到MySQL了:

代码语言:javascript
复制
RUN docker-php-ext-install xdebug
RUN docker-php-ext-enable xdebug
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55738958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档