Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker compose gives invalid environment type error

I am implementing bitnami-docker-wordpress for the first time. These are the configuration I have in my yml file.

version: '3'

services:
  # Database
  mariadb:
    image: 'bitnami/mariadb:latest'
    ports:
      - '3306:3306'
    volumes:
      - mariadb_data:/var/lib/mysql
    restart: always
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      # - ALLOW_EMPTY_PASSWORD=no
      - MARIADB_USER: wordpress
      - MARIADB_PASSWORD: wordpress
      - MARIADB_ROOT_PASSWORD: wordpress
      - MARIADB_DATABASE: wordpress
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - mariadb
    image: 'bitnami/wordpress:latest'
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      - WORDPRESS_DB_HOST: mariadb:3306
      - WORDPRESS_DB_USER: wordpress
      - WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  mariadb_data:
    driver: local

Now, when I try to run docker-compose up -d I am getting following error:

ERROR: The Compose file '.\docker-compose.yml' is invalid because:
services.mariadb.environment contains {"MARIADB_USER": "wordpress"}, which is an invalid type, it should be a string
services.wordpress.environment contains {"WORDPRESS_DB_HOST": "mariadb:3306"}, which is an invalid type, it should be a string

Can anybody help me solve this configuration?

Thank You.

like image 329
nas Avatar asked Jul 14 '26 03:07

nas


2 Answers

Try this

version: '3'

services:
  # Database
  mariadb:
    image: 'bitnami/mariadb:latest'
    ports:
      - '3306:3306'
    volumes:
      - mariadb_data:/var/lib/mysql
    restart: always
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      # - ALLOW_EMPTY_PASSWORD=no
      MARIADB_USER: wordpress
      MARIADB_PASSWORD: wordpress
      MARIADB_ROOT_PASSWORD: wordpress
      MARIADB_DATABASE: wordpress
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - mariadb
    image: 'bitnami/wordpress:latest'
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: mariadb:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  mariadb_data:
    driver: local

The environment parameters are either defined as

environment:
  param1:value1
  param2:value2

or

environment:
  - param1=value1
  - param2=value2
like image 132
Vishakha Lall Avatar answered Jul 17 '26 19:07

Vishakha Lall


That error is because you are using the character - in environment from wordpress

environment:
      - WORDPRESS_DB_HOST: mariadb:3306
      - WORDPRESS_DB_USER: wordpress
      - WORDPRESS_DB_PASSWORD: wordpress

And should be:

environment:
      WORDPRESS_DB_HOST: mariadb:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

Regards

like image 22
Luis Rauseo Avatar answered Jul 17 '26 20:07

Luis Rauseo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!