When I first tried Docker a couple of years back, I did not find it much different from using a virtual machine. Perhaps because I was experimenting with it on Windows, or perhaps it was still a relatively new app back then. I remember not having a pleasant experience installing and running it on my machine, and at the time it was just easier to run and debug Selenium tests on a VM.
I tried again recently.
And I was both surprised and delighted to be able to build a Docker image with an existing test code and its dependencies automatically installed, right out of the box. This is very promising; I can now build development environments or tools which can run on any machine I own or for teams. To use them we just need install Docker and download the shared image. No more setup problems! Of course, there’s still a lot to test – we’ll probably want to have an image be slim in size, automatically update test code from a remote repository, among other cool things. I’ll try those next.
Here’s what the Dockerfile looks like:
RUN mkdir /usr/src/app
ADD . /usr/src/app/
RUN gem install bundler
RUN bundle install
Short and easy to follow. Then we build the image by running the following command on the terminal (on the root project directory):
docker build -t [desired_image_name] .
To run and access the image as a container:
docker run -i -t [image_name]:[tag_name] /bin/bash
And from there we can run our cucumber tests inside the container the same way as we do on our local machine.