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: 

Connect to Selenium service from within docker container

bsuttis
April 9, 2021

In Pipelines I can install a Drupal site successfully and from within its container I can access it at http://localhost:80. I am executing Behat tests and non-@javascript scenarios are working (via goutte) but @javascript scenarios are failing (via selenium2). I get the following error when running a @javascript scenario:

unknown error: net::ERR_CONNECTION_REFUSED
  (Session info: chrome=89.0.4389.82)
  (Driver info: chromedriver=89.0.4389.23 (61b08ee2c50024bab004e48d2b1b083cdbdac579-refs/branch-heads/4389@{#294}),platform=Linux 5.4.92-flatcar x86_64) (WebDriver\Exception\UnknownError)

I'm wondering if it's possible to connect to the Selenium service from within the container?

In a build step, I run:

docker exec -i app bash -c "echo \"$BITBUCKET_DOCKER_HOST_INTERNAL host.docker.internal\" >> /etc/hosts"

This allows me to access the mysql service at host.docker.internal:3306 from within the container.

I assume the same should work for the Selenium service, making it accessible at host.docker.internal:4444 from within the container but the error above is output.

Here is part of my bitbucket-pipelines.yml file to help provide some more context:

pipelines:
  default:
    - step:
        script:
          - docker build -t my-ci .
          - docker run -dit --name app -p 8080:80 my-ci
          - sleep 5
          - docker ps
          - docker exec -i app bash -c "echo \"$BITBUCKET_DOCKER_HOST_INTERNAL host.docker.internal\" >> /etc/hosts && /var/www/vendor/drush/drush/drush si --db-url=mysql://drupal:drupal@host.docker.internal:3306/drupal -vvv"
          - docker exec -i app bash -c "curl http://localhost:80/user/login"
          - docker exec -i app bash -c "cd /var/www/tests/behat && composer install && bin/behat"
        services:
          - docker
          - mysql
          - google-chrome

definitions:
  services:
    mysql:
      image: mysql:5.7
      environment:
        MYSQL_DATABASE: 'drupal'
        MYSQL_USER: 'drupal'
        MYSQL_ROOT_PASSWORD: 'root'
        MYSQL_PASSWORD: 'drupal'
    google-chrome:
      image: selenium/standalone-chrome

2 answers

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Answer accepted
bsuttis
April 13, 2021

After a lot of trial and error I realized the mapping of 8080:80 was causing issues. Instead I mapped 80:80 and I can now successfully run my Behat @javascript tests.

alfered marshal
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
July 15, 2022

Hey, thanks for posting here i am sharing the most popular trending online certification course that will advance your career. Learn oracle Certifiaction Training 

0 votes
alfered marshal
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
July 15, 2022

Hey, thanks for posting here i am sharing the most popular trending online certification course that will advance your career. Learn oracle Certifiaction Training and enroll now to get!!

TAGS
AUG Leaders

Atlassian Community Events