New tooling: rfdocker, Robot Framework in a Docker container, released

1,830 views
Skip to first unread message

Anssi Syrjäsalo

unread,
Oct 15, 2017, 7:31:08 AM10/15/17
to robotframework-users
Greetings fellow Robotians on planet Earth,

Robot Framework distributed in a Docker container, rfdocker was released today (2017-10-15).

This Robot Framework distribution requires only Docker installed as a prerequisite, and targets to act as a drop-in replacement for (installing test libraries via) Python packages.


## Why?
  • To take Robot Framework into use without (having sudo to do) installations on the host
  • To avoid managing virtualenvs to deal with conflicting dependencies of test libraries
  • To be able to both install Robot Framework and run tests with a single command

## How to take it into use?



## Where are the Docker images hosted?

The images for both Python 3 and 2 series are publicly hosted in Docker Hub, robotframework/rfdocker. The version numbers do correspond to the Robot Framework releases.



## Where is the source located?




## Found an issue? Have a suggestion?

Currently rfdocker has been battle tested on Ubuntu Linux 16.04 LTS, OS X Sierra (10.12) and OS X High Sierra (10.13). The bugs and improvements are tracked in GitHub issue tracker:


Feel free to fork and pull request, and welcome to channel #rfdocker in Slack (robotframework.slack.com) for discussion as well!


Hope You find it useful, and that it helps Us in spreading Robot Framework to the unknown, in a more portable way...

Best Regards,
  Anssi Syrjäsalo,
  DevOp and infrastructure developer,
  Former core developer of Robot Framework (2013)

David

unread,
Oct 15, 2017, 7:51:33 PM10/15/17
to robotframework-users
Nice. Since we're dockerizing, I think useful additions would be support for IronPython and Jython use of RobotFramework as part of the docker image. Those also require certain setup, where a preconfigured environment would be useful.

Could be separate docker images, or a single all in one image that supports python, IronPython, and Jython. Whether in this repo or separate 3rd party repo. I'll look into helping what I can when I have some time.

Wlad

unread,
Oct 20, 2017, 11:27:17 AM10/20/17
to mang...@gmail.com, robotframework-users
Great project! Thanks for sharing!

What happens when test requires a browser to run?
How can it be used in combination with Selenoid [1], Zalenium [2] or Docker-Selenium [3]


Cheers
Tset

--
You received this message because you are subscribed to the Google Groups "robotframework-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robotframework-u...@googlegroups.com.
To post to this group, send email to robotframe...@googlegroups.com.
Visit this group at https://groups.google.com/group/robotframework-users.
For more options, visit https://groups.google.com/d/optout.

David

unread,
Oct 20, 2017, 4:12:18 PM10/20/17
to robotframework-users
To answer your question, I believe that would simply be orchestrating the communication between the different docker containers of each project. Supposedly, that's as simple as having each be able to access the host & port of the other containers, as they're all independent component via docker as well as outside docker (e.g. RF, Selenium (grid) browser nodes, and Selenium grid (hub) are all isolated components that run independent of each other but can communicate with each other for tests).

The RF docker container would drive the tests that talk to say seleniod/zalenium/docker-selenium's grid hub which would then drive the matching grid nodes for browser tests.

How the orchestrating is done depends on your preference and what each docker project supports (docker compose, docker swarm, kubernetes). But at a minimum, you can definitely deploy and orchestrate them the manual way (and individually) using docker commands (not in a docker swarm).

I would think that an "example" of combining all these docker containers for an RF test warrants a separate blog post, Github gist, or Github repo demonstrating the usage, as that would span the scope of each project alone.
To unsubscribe from this group and stop receiving emails from it, send an email to robotframework-users+unsub...@googlegroups.com.

David

unread,
Nov 8, 2017, 6:28:54 PM11/8/17
to robotframework-users
Great project and share, just wanted to mention that while trying to look up this repo again (though maybe I should have started by searching the Google Group here first), I found some other existing docker projects for RF, so one has choices as well. Note that I have not reviewed in depth these images...



On a related note, any thoughts on benefits of this one over the others? Obviously though, it would be nice to have a de facto, default, standard (sorta official) docker image for RF, with the others being optional alternatives. And this one could be the standard one hopefully.

Interestingly w/o looking at details I think most focused on python RF, but not jython or ironpython RF setups.


On Sunday, October 15, 2017 at 4:31:08 AM UTC-7, Anssi Syrjäsalo wrote:

Keith Brown

unread,
Jun 5, 2018, 6:25:49 PM6/5/18
to robotframework-users
Are there any more blog posts or tips about running pybot in a docker container? 

If I want to test a Docker container w/Dockerfile, what is a good strategy for it?

David

unread,
Jun 5, 2018, 6:57:55 PM6/5/18
to robotframework-users
Dockerfile's are for building docker images. The only relevance here would be if you wanted to have the test(case) codebase be contained with the RF setup all in one docker image, you would then build a new docker image (version) with every CI build using the Dockerfile + docker tooling.

In terms of testing aspect alone, there is no involvement of Dockerfiles. You just orchestrate the docker images to run as container instances connected to each other (e.g. RF docker image, application under test in another docker image (and possibly other dockers for database, etc.), with networking set up between the two, etc.). The orchestration can be via shell scripts, docker compose, or kubernetes, etc.

Tset Noitamotua

unread,
Mar 8, 2019, 10:39:56 AM3/8/19
to robotframework-users
Please join the Docker dedicated channel on Robot-Framework Slack #docker

Cheers
Reply all
Reply to author
Forward
0 new messages