Host container + docker for selenium

docker
2.0

#1

I’m looking to use the host container for testing, with a docker container selenium/standalone-chrome for a remote browser. I’ve got this working locally, and I’ve been looking over 2.0 examples including

Context

I have a rails-api/graphql backend with react front end. We are testing with capybara/cucumber/rspec as well as the javascript tool chain. It will be easier for testing purposes to not use a container for the host system (though I’m open to ideas) and to simply run the browser in the remote container. This would keep it closer to the development environment (Docker OSX file I/O performance is terrible).

On the local system, a smoke test run looks like:

  1. docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.0.1-germanium - BTW I don’t think the volume is absolutely required here - I think it is just an optimization.
  2. CI=true RAILS_ENV=test bundle exec rake cucumber FEATURE=features/public_pages.feature

Goal

I’d like to run on the host with a docker container running the selenium browser. I prefer to avoid full configuration of the machine and use the docker executor type for both performance reasons and minimizing configuration that gets out of date.

Questions

  1. Specifically is the cci-demo-flask example running two containers as daemons?
  2. Which one is the host container in the cci-demo-flask example and how is that identified (first one?)?
  3. What if you don’t need a specific container for the host but want to run selenium/standalone-chrome as a daemon as I described above?
  4. Getting Started: Docker Engine has an example then refers to a rails app. The topic seems relevant but the cci-demo-rails yml deviates significantly. Is there an updated config documentation?

#2

The python:3.5 container is used to run all the steps and the postgres:9.5.5 container is a daemon with Postgres ports exposed.

The first container listed is always where the commands run.

We automatically expose ports of the containers based on their Dockerfile, except for the first container.

Our docs team is working to update all our 2.0 docs right now; you are likely seeing an inconsistency while they are working. Sorry for any confusion that caused. It does seem like our mistake.


#3