我是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