Bitbucket трубопроводы, как я могу получить доступ к другому контейнеру? - PullRequest
1 голос
/ 28 июня 2019

Я попытался построить некоторый процесс тестирования для моего приложения, используя конвейеры Bitbucket.

Основным средством тестирования является Cypress.Я хочу установить несколько док-контейнеров и запустить 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

В целом, он работает почти хорошо, но дляпо какой-то причине я не могу получить доступ к сервису web внутри e2e контейнера.Я пытался использовать имя контейнера, например http://web, но оно не работает.enter image description here Что здесь не так?

1 Ответ

0 голосов
/ 30 июня 2019

Хорошо, похоже, проблема решена. Я решил создать новый образ, который основан на yiisoftware/yii2-php:5.6-apache, и вручную установить все deps:

Итак, после этого я построил изображение и использовал его в качестве изображения для веб-службы в моей конфигурации. Служба под названием e2e была удалена. Выполнение Cypress-тестов выглядит так:

docker exec -i web yarn run cypress run --config baseUrl=http://localhost:80 --project ./
...