docker-composebitnamiprestashop-1.7

docker-compose.yml for Bitnami Apache, MariaDB, PrestaShop and PHPMyAdmin is not working correctly


My 1st goal is to write a docker-compose.yml file with the following:

Can you please help me get it working correctly ?

Then, my 2nd goal is to set passwords and disallow the "no password".

Kind regards, Arnaud.

I'm using the bitnami's dockers so I've started the following script:

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

For information, I use Mac OS X Mojave with the following docker tools version:

$ 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

When I launch with the following command:

docker-compose up

Then the different images are downloaded and started.

When I try to access the PhpMyAdmin instance using http://localhost:81 I can reach the PhpMyAdmin instance correctly using root and no password.

I get two major problems:


Solution

  • When tying your docker-compose file I got this errors:

    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
    

    You need to set up the user password in the mariadb container too.

    This docker-compose file worked for me, may be you can build up from here.

    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