【发布时间】:2019-06-28 13:17:56
【问题描述】:
我尝试使用 Bitbucket 管道为我的应用构建一些测试流程。
核心测试工具是 Cypress。我想设置几个 docker 容器并执行 Cypress 来测试我的应用程序。
所以,我的bitbucket-pipelines.yml 看起来像这样:
image: docker:stable
options:
docker: true
pipelines:
default:
- step:
name: Install PHP app
caches:
- composer
script:
- cp config/db.sample.php config/db.php
- sed -i "s/[HOSTNAME]/db/" config/db.php
- sed -i "s/[DB_NAME]/dbname/" config/db.php
- sed -i "s/[DB_USER]/usr/" config/db.php
- sed -i "s/[DB_USER_PASSWORD]/pass/" config/db.php
- cp web/index.sample.php web/index.php
- docker run --name db --restart always -e MYSQL_DATABASE=dbname -e MYSQL_USER=usr -e MYSQL_PASSWORD=pass -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d -p 3306:3306 mariadb
- docker run --name web -v="$BITBUCKET_CLONE_DIR:/app" -d -p 8000:80 yiisoftware/yii2-php:5.6-apache
- docker run --name e2e -v="$BITBUCKET_CLONE_DIR:/app" --workdir /app --tty -d cypress/base:10
- docker exec -i web composer install
- docker exec -i db mysql -uroot dbname < ./migrations/data/structure.sql
- docker exec -i e2e yarn install
- docker exec -i e2e yarn run cypress run --config baseUrl=http://web --project ./
services:
- docker
- web
definitions:
services:
db:
image: mariadb
web:
image: yiisoftware/yii2-php:5.6-apache
e2e:
image: cypress/base:10
总的来说,它几乎可以正常工作,但由于某种原因,我无法访问e2e 容器内的web 服务。我尝试使用容器名称,例如http://web,但它不起作用。
这里有什么问题?
【问题讨论】:
-
我想你忘了在
servicesserction 中添加e2e -
@LolWalid 感谢您的评论,但仍然是同样的错误
标签: docker yii2 cypress bitbucket-pipelines