【发布时间】:2021-01-04 23:48:44
【问题描述】:
我正在将我的 prestashop 安装移动到 docker 容器。我在 Ubuntu 上有一个带有 prestashop、mariadb 和 phpmyadmin 的容器。我已经按照这里的建议设置了环境变量:https://githubmemory.com/repo/PrestaShop/docker。这是我的docker-compose:
version: "2"
services:
prestashop:
image: prestashop/prestashop
networks:
mycustomnetwork:
ports:
- 82:80
links:
- mariadb:mariadb
depends_on:
- mariadb
volumes:
- ./src:/var/www/html
- ./src/modules:/var/www/html/modules
- ./src/themes:/var/www/html/themes
- ./src/override:/var/www/html/override
environment:
- PS_DEV_MODE=1
- DB_SERVER=mariadb
- DB_USER=user_8
- DB_PASSWD=password_8
- DB_NAME=db_8
- PS_INSTALL_AUTO=0
mariadb:
image: mariadb
networks:
mycustomnetwork:
volumes:
- db_data:/docker-entrypoint-initdb.d
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=db_8
- MYSQL_USER=user_8
- MYSQL_PASSWORD=password_8
phpmyadmin:
image: phpmyadmin/phpmyadmin
networks:
mycustomnetwork:
links:
- mariadb:mariadb
ports:
- 1235:80
depends_on:
- mariadb
environment:
- PMA_HOST=mariadb
- PMA_USER=user_8
- PMA_PASSWORD=password_8
volumes:
db_data:
networks:
mycustomnetwork:
数据库工作正常,我可以通过 phpmyadmin 连接到它。但是在 prestashop 日志中我收到此错误:
Link to database cannot be established: SQLSTATE[HY000] [2002] No such file or directory at line 127 in file classes/db/DbPDO.php
我修改了代码,它抛出了这个错误,所以它打印了它用来尝试建立连接的变量 ($this->server, $this->user, $this->password, $this->database),我得到了这个:localhost user password db。这些值来自app/config/parameters.php,而不是我在docker-compose 中设置的环境变量。我应该怎么做才能使用我在docker-compose 中提供的值而不是来自parameters.php 的值?
【问题讨论】:
标签: php docker docker-compose mariadb prestashop