首页 > 解决方案 > Bitnami Apache、MariaDB、PrestaShop 和 PHPMyAdmin 的 docker-compose.yml 无法正常工作

问题描述

我的第一个目标是编写一个 docker-compose.yml 文件,其中包含以下内容:

你能帮我让它正常工作吗?

然后,我的第二个目标是设置密码并禁止“无密码”。

亲切的问候,阿诺。

我正在使用 bitnami 的 docker,所以我启动了以下脚本:

version: "3"

networks:
  prestashop-network:
    driver: bridge

services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - MARIADB_USER=bn_prestashop
      - MARIADB_DATABASE=bitnami_prestashop
      - ALLOW_EMPTY_PASSWORD=yes
    networks: 
      - prestashop-network
    volumes:
      - 'mariadb_data:/bitnami'
    ports:
      - 3307:3306

  phpmyadmin:
    image: bitnami/phpmyadmin:latest
    volumes:
      - 'phpmyadmin_data:/bitnami'
    depends_on:
      - mariadb
    ports: 
      - 81:80 
    environment:
      - PHPMYADMIN_ALLOW_NO_PASSWORD=true
    networks: 
      - prestashop-network

  prestashop_1.7:
    image: 'bitnami/prestashop:1.7'
    volumes:
      - 'prestashop_data:/bitnami'
      - ./docker/prestashop/custom-php.ini:/usr/local/etc/php/conf.d/custom.ini
      - ./docker/prestashop/phpinfo.php:/var/www/html/phpinfo.php
    depends_on:
      - mariadb
    ports:
      - 8085:80
      - 8086:443
    environment:
      - PRESTASHOP_FIRST_NAME=Toto
      - PRESTASHOP_LAST_NAME=FAMILLE
      - PRESTASHOP_PASSWORD=bitnami1
      - PRESTASHOP_EMAIL=user@example.com
      - PRESTASHOP_HOST=localhost
      - PRESTASHOP_COUNTRY=fr
      - PRESTASHOP_LANGUAGE=fr
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - PRESTASHOP_DATABASE_USER=bn_prestashop
      - PRESTASHOP_DATABASE_NAME=bitnami_prestashop
      - PRESTASHOP_DATABASE_PASSWORD=bitnami1
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_ROOT_USER=root
      - MARIADB_ROOT_PASSWORD=
      - MYSQL_CLIENT_CREATE_DATABASE_NAME=bitnami_prestashop
      - MYSQL_CLIENT_CREATE_DATABASE_USER=bn_prestashop
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - SMTP_PROTOCOL=tls
      - SMTP_USER=your_email@gmail.com
      - SMTP_PASSWORD=your_password
    networks: 
      - prestashop-network  

volumes:
  mariadb_data:
    driver: local
  prestashop_data:
    driver: local
  phpmyadmin_data:
    driver: local

有关信息,我将 Mac OS X Mojave 与以下 docker 工具版本一起使用:

$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

当我使用以下命令启动时:

docker-compose up

然后下载并启动不同的图像。

当我尝试使用http://localhost:81访问 PhpMyAdmin 实例时,我可以使用 root 和无密码正确访问 PhpMyAdmin 实例。

我遇到两个主要问题:

标签: docker-composebitnamiprestashop-1.7

解决方案


绑定 docker-compose 文件时,出现以下错误:

mariadb_1         | 2019-08-15  9:28:47 13 [Warning] Access denied for user 'bn_prestashop'@'192.168.48.4' (using password: YES)
prestashop_1.7_1  | mysql-c ERROR [canConnect] Connection with 'bn_prestashop' user is unsuccessful

您还需要在 mariadb 容器中设置用户密码。

这个 docker-compose 文件对我有用,也许你可以从这里建立。

version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:10.1'
    environment:
      - MARIADB_USER=bn_prestashop
      - MARIADB_DATABASE=bitnami_prestashop
      - MARIADB_PASSWORD=my_passwd
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami'
  prestashop:
    image: 'bitnami/prestashop:1.7'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - PRESTASHOP_DATABASE_USER=bn_prestashop
      - PRESTASHOP_DATABASE_NAME=bitnami_prestashop
      - PRESTASHOP_DATABASE_PASSWORD=my_passwd
      - ALLOW_EMPTY_PASSWORD=yes
      - PRESTASHOP_FIRST_NAME=Toto
      - PRESTASHOP_LAST_NAME=FAMILLE
      - PRESTASHOP_PASSWORD=bitnami1
      - PRESTASHOP_EMAIL=user@example.com
      - PRESTASHOP_HOST=localhost
      - PRESTASHOP_COUNTRY=fr
      - PRESTASHOP_LANGUAGE=fr
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - SMTP_PROTOCOL=tls
      - SMTP_USER=your_email@gmail.com
      - SMTP_PASSWORD=your_password
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - 'prestashop_data:/bitnami'
    depends_on:
      - mariadb
  phpmyadmin:
    image: 'bitnami/phpmyadmin:4'
    ports:
      - '8080:80'
      - '8443:443'
    depends_on:
      - mariadb
    volumes:
      - 'phpmyadmin_data:/bitnami'
volumes:
  mariadb_data:
    driver: local
  prestashop_data:
    driver: local
  phpmyadmin_data:
    driver: local

推荐阅读