I tried to build some testing process for my app, using Bitbucket pipelines.
The core testing tool is Cypress. I want to set up several docker containers and execute Cypress to test my app.
So, my bitbucket-pipelines.yml looks like this:
<span>image</span><span>:</span><span> docker</span><span>:</span><span>stable
options</span><span>:</span><span> docker</span><span>:</span> <span>true</span><span>pipelines</span><span>:</span>
<span>default</span><span>:</span>
<span>-</span><span> step</span><span>:</span><span> <br> name</span><span>:</span> <span>Install</span><span> PHP app
caches</span><span>:</span>
<span>-</span><span> composer
script</span><span>:</span>
<span>-</span><span> cp config</span><span>/</span><span>db</span><span>.</span><span>sample</span><span>.</span><span>php config</span><span>/</span><span>db</span><span>.</span><span>php
</span><span>-</span><span> sed </span><span>-</span><span>i </span><span>"s/[HOSTNAME]/db/"</span><span> config</span><span>/</span><span>db</span><span>.</span><span>php
</span><span>-</span><span> sed </span><span>-</span><span>i </span><span>"s/[DB_NAME]/dbname/"</span><span> config</span><span>/</span><span>db</span><span>.</span><span>php
</span><span>-</span><span> sed </span><span>-</span><span>i </span><span>"s/[DB_USER]/usr/"</span><span> config</span><span>/</span><span>db</span><span>.</span><span>php
</span><span>-</span><span> sed </span><span>-</span><span>i </span><span>"s/[DB_USER_PASSWORD]/pass/"</span><span> config</span><span>/</span><span>db</span><span>.</span><span>php
</span><span>-</span><span> cp web</span><span>/</span><span>index</span><span>.</span><span>sample</span><span>.</span><span>php web</span><span>/</span><span>index</span><span>.</span><span>php
</span><span>-</span><span> docker run </span><span>--</span><span>name db </span><span>--</span><span>restart always </span><span>-</span><span>e MYSQL_DATABASE</span><span>=</span><span>dbname </span><span>-</span><span>e MYSQL_USER</span><span>=</span><span>usr </span><span>-</span><span>e MYSQL_PASSWORD</span><span>=</span><span>pass</span> <span>-</span><span>e MYSQL_ALLOW_EMPTY_PASSWORD</span><span>=</span><span>yes </span><span>-</span><span>d </span><span>-</span><span>p </span><span>3306</span><span>:</span><span>3306</span><span> mariadb
</span><span>-</span><span> docker run </span><span>--</span><span>name web </span><span>-</span><span>v</span><span>=</span><span>"$BITBUCKET_CLONE_DIR:/app"</span> <span>-</span><span>d </span><span>-</span><span>p </span><span>8000</span><span>:</span><span>80</span><span> yiisoftware</span><span>/</span><span>yii2</span><span>-</span><span>php</span><span>:</span><span>5.6</span><span>-</span><span>apache
</span><span>-</span><span> docker run </span><span>--</span><span>name e2e </span><span>-</span><span>v</span><span>=</span><span>"$BITBUCKET_CLONE_DIR:/app"</span> <span>--</span><span>workdir </span><span>/</span><span>app </span><span>--</span><span>tty </span><span>-</span><span>d cypress</span><span>/</span><span>base</span><span>:</span><span>10</span>
<span>-</span><span> docker </span><span>exec</span> <span>-</span><span>i web composer install
</span><span>-</span><span> docker </span><span>exec</span> <span>-</span><span>i db mysql </span><span>-</span><span>uroot dbname </span><span><</span> <span>./</span><span>migrations</span><span>/</span><span>data</span><span>/</span><span>structure</span><span>.</span><span>sql
</span><span>-</span><span> docker </span><span>exec</span> <span>-</span><span>i e2e yarn install
</span><span>-</span><span> docker </span><span>exec</span> <span>-</span><span>i e2e yarn run cypress run </span><span>--</span><span>config baseUrl</span><span>=</span><span>http</span><span>:</span><span>//web --project ./</span><span> services</span><span>:</span>
<span>-</span><span> docker
</span><span>-</span><span> web
definitions</span><span>:</span><span> <br> services</span><span>:</span><span> <br> db</span><span>:</span><span> <br> image</span><span>:</span><span> mariadb
web</span><span>:</span><span> <br> image</span><span>:</span><span> yiisoftware</span><span>/</span><span>yii2</span><span>-</span><span>php</span><span>:</span><span>5.6</span><span>-</span><span>apache
e2e</span><span>:</span><span> <br> image</span><span>:</span><span> cypress</span><span>/</span><span>base</span><span>:</span><span>10</span>Overall, it works almost good, but for some reason I can't get access to web service inside e2e container. I tried to use container name, like http://web, but it doesn't work.
What is wrong here?