Docker Compose-Concrete5无法连接到MySQL数据库

时间:2018-07-05 23:29:24

标签: docker composer-php docker-compose concrete5 concrete5-8.x

我是Docker的新手,我一直在尝试弄清楚如何使用运行PHP,MySQL和Concrete5 CMS的Docker容器来设置开发环境。

我一直在遇到一些麻烦,想弄清楚为什么我的Concrete5安装无法连接到数据库。

我认为它可以归结为我的docker-compose链接,并且它似乎没有创建/ etc / hosts /,因此我可以将mysqldb容器用作主机。

通过CLI安装Concrete5使用以下命令:

php public/concrete/bin/concrete5 c5:install --db-server=mysqldb:13306 --db-username=concrete5 --db-password=concrete5 --db-database=concrete5 --admin-email=admin@example.com --admin-password=concrete5 --starting-point=elemental_blank

据我了解,mysqldb应该是用于服务器的主机名,但出现错误:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

如果有人可以提供帮助,将不胜感激。在过去的四天内,我一直遇到麻烦。

docker-compose.yml

version: '3.6'
services:
    composer:
      restart: 'no'
      image: composer:1.6.5
      volumes:
        - .:/app
      links:
        - php-apache
        - mysqldb:concretedb
      environment:
          DB_HOST: mysqldb
      tty: true
    php-apache:
      build:
        context: ./.docker/php-apache
      ports:
          - 8080:80
      volumes:
          - ./public:/var/www/html
          - .:/var/www/
      links:
          - mysqldb:concretedb
      tty: true
    mysqldb:
      build:
        context: ./.docker/mysql
      volumes:
          - mysqldb:/var/lib/mysql
      environment:
          TZ: "Americas/Vancouver"
          MYSQL_ALLOW_EMPTY_PASSWORD: "no"
          MYSQL_ROOT_PASSWORD: test
          MYSQL_USER: concrete5
          MYSQL_PASSWORD: concrete5
          MYSQL_DATABASE: concrete5
      ports:
        - "13306:3306"
volumes:
    mysqldb:

.docker/mysql/Dockerfile

ARG MYSQL_VERSION=5.7
FROM mysql:${MYSQL_VERSION}
RUN chown -R mysql:root /var/lib/mysql/
CMD ["mysqld"]
EXPOSE 3306

.docker/php-apache/Dockerfile

FROM php:7.2.7-apache
MAINTAINER Tien

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
    && pecl install mcrypt-1.0.1 \
    && docker-php-ext-enable mcrypt \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

RUN docker-php-ext-install pdo pdo_mysql mysqli

0 个答案:

没有答案