Docker Community Forums

Share and learn in the Docker community.

Implement Docker isolation for multiple users

Hi All,
I’ve been asked to configure a ubuntu 18.04 server with docker for multiple users.

We have multiple testers who write test cases. But our laptops aren’t fast enough to build the project and run tescases in docker environment.

I’ve been given a high end ubuntu 18.04 server.
When testers push there changes to remote servers project should build and run on isolated environments. Multiple users can work on same project but one testers builds must NOT affect another one.

I already installed Docker and tried with only changing docker-compose.yml and adding different networks (using multiple accounts of course). But it was very painful.

I need to have multiple selenoid servers(for different users),different allure reports with docker , Need the ability to build and run tests using our docker-compose files and need the ability to run the actual project on different ports so we can go through the system while writing test cases.

Is it possible to configure an environment without changing project docker-compose.yml ?
Whats the approach I should take ?

The OP has already an CI/CD-system running. The question is: How can testers wrote new testcases on a own enviroment which is not running on the local maschine.

I suggest that you setup a k8s (kubernetes) instance on your new “high-end”-server. The installation of minikube is very easy and enough when you has only one server (aka node).

With k8s you can control your docker-containers (or with the correct verb “orchestrate”).
You can do one of these things next:

Wrote a script for the test-laptops, so they can start new environments. You can use the $USER-variable for the correct naming. Be aware that the testers may have access to k8s now.
My favorite: Don’t create enviroments for users, create them for merge requets. They are not bound to users and can be created by your version-control-system (e.g. gitlab). The testers can open an MR, your server setup a new enviroment and the tester is ready to go. And your testers have no access to k8s.
Not recommended, but possible: Create enviroments manually for each tester.