Pipelines as in docs gives "The 'environment' section must be a map."

My Pipelines configuration gets rejected with the following message:

The 'environment' section in your bitbucket-pipelines.yml file must be a map.

Using the docs, I created the following yml:

      - step:
          image: php
            - php -v
            - apt-get update && apt-get install -y unzip
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
            - composer -V
            - composer install
            - bin/console doctrine:schema:create
            - bin/console doctrine:fixtures:load
            - vendor/bin/phpunit
            - mysql
      image: mysql
        MYSQL_DATABASE: tournament
        MYSQL_USERNAME: tournament_user
        MYSQL_PASSWORD: tournament_password

What's wrong with this configuration file? Why is it rejected?

6 answers

1 accepted

USERNAME should be USER and the values should be encapsulated in apostrophes. This works:

        MYSQL_DATABASE: 'tournament'
        MYSQL_USER: 'tournament_user'
        MYSQL_PASSWORD: 'tournament_password'
Joshua Tjhin Atlassian Team Apr 26, 2017

Good catch

I had the same problem and through a process of elimination found that the error comes from using MYSQL_RANDOM_ROOT_PASSWORD. So, despite what the pipelines documentation says, I don't think this is supported properly yet.

I replaced:



MYSQL_ROOT_PASSWORD: some_password

Not ideal but it is a workaround for now.

Joshua Tjhin Atlassian Team Apr 26, 2017

Hi Kieren, sorry for the incorrect example in the docs. I've gone ahead and fixed it.

It's an issue with yml where yes gets converted to a boolean (true) which messes with Pipelines since you can't have a boolean environment variable they must be strings.

If you wrap the yes in quotes then it should work.


Hi Joshua

Many thanks for this. Much appreciated.



I found the error! You shouldn't use MYSQL_USERNAME but MYSQL_USER!

Awesome, i'll check that out later.They also seem to have updated the docs as now the credentials are in quotes and they weren't before (still says MYSQL_USERNAME though)!


Joshua Tjhin Atlassian Team Apr 26, 2017

Very sorry about this. Good catch. I've updated it to MYSQL_USER


It also seems to fire on every commit, since the branch is called 'default', not 'main', but that is another issue for another time ^^.

Thanks, that worked!

It totally shouldn't have, since even the mysql docker docs acknowledge the random_root parameter, but hey, fine for now :)

These answers were very helpful. Thanks everyone.

Team Atlassian -- the docs on the page at the link below are still incorrect -- need to add quotes around the environment variables and also use MYSQL_USER not MYSQL_USERNAME. Please fix these. Thx.

Suggest an answer

Log in or Join to answer

Stay in touch

Be the first to know what's trending on Atlassian Community

Community showcase
Piotr Plewa
Published Dec 27, 2017 in Bitbucket

Recipe: Deploying AWS Lambda functions with Bitbucket Pipelines

Bitbucket Pipelines helps me manage and automate a number of serverless deployments to AWS Lambda and this is how I do it. I'm building Node.js Lambda functions using node-lambda&nbsp...

257 views 0 2
Read article
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot