The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Connecting to MySQL in container

Deleted user
June 27, 2016

For my pipeline, I am pulling down the docker image tutum/lamp  to provide a full stack to test against. One of my pipeline steps is to create the various databases I need. However, the commands I am issuing fail with this message:

$ mysql --user=root --port=3306 --host=localhost < sql_scripts/create_app_dbs.sql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

 

If I pull this docker image locally, run it, and ssh into it, I can execute mysql --user=root --port=3306 --host=localhost and connect without issue. Stumped as to why this is happening. From the documentation, it seems like the steps should be running inside the container, but this error makes me feel like it might be running outside of the container.

 

EDIT: Digging in deeper, it appears the docker run invocation is different than what I do locally. When I run it, a series of scripts initiated by the Dockerfile brings up MySQL, but the pipelines process does not run these.

2 answers

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

1 vote
Answer accepted
Philip Hodder
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 27, 2016

You are right about Bitbucket Pipelines not running run.sh. You can run it inside of your build instead.

Try the following bitbucket-pipelines.yml:

image: tutum/lamp
pipelines:
    default:
        - step:
            script:
                - bash /run.sh & # Start the MySQL, run.sh is located in root directory
                - sleep 20 # So that MySQL has time to start up.
                - mysql --user=root --port=3306 --host=localhost < sql_scripts/create_app_dbs.sql
Deleted user
June 28, 2016

Had tried running run.sh in various ways, but the bash in front finally did the trick.

Much obliged.

 

0 votes
Alex Soto
Contributor
June 27, 2016

I suppose you could execute those same series of scripts yourself in your pipelines yml?

TAGS
AUG Leaders

Atlassian Community Events