{"id":13561047,"url":"https://github.com/ppodgorsek/docker-robot-framework","last_synced_at":"2025-04-14T20:57:36.958Z","repository":{"id":38361996,"uuid":"69385810","full_name":"ppodgorsek/docker-robot-framework","owner":"ppodgorsek","description":"Robot Framework in Docker","archived":false,"fork":false,"pushed_at":"2024-10-30T11:21:02.000Z","size":6582,"stargazers_count":349,"open_issues_count":37,"forks_count":244,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-07T16:12:33.961Z","etag":null,"topics":["browser","chrome","docker","firefox","microsoft-edge","playwright","robot-framework","selenium"],"latest_commit_sha":null,"homepage":"https://cloud.docker.com/repository/docker/ppodgorsek/robot-framework","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ppodgorsek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ppodgorsek","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2016-09-27T18:18:53.000Z","updated_at":"2025-04-07T08:40:27.000Z","dependencies_parsed_at":"2024-01-15T02:30:14.312Z","dependency_job_id":"10b87264-3f6a-41bc-9aee-c99b39f7c204","html_url":"https://github.com/ppodgorsek/docker-robot-framework","commit_stats":{"total_commits":466,"total_committers":17,"mean_commits":27.41176470588235,"dds":0.1523605150214592,"last_synced_commit":"430e649ffdb94bb864da383f976ed2ce4b1be559"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppodgorsek%2Fdocker-robot-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppodgorsek%2Fdocker-robot-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppodgorsek%2Fdocker-robot-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppodgorsek%2Fdocker-robot-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppodgorsek","download_url":"https://codeload.github.com/ppodgorsek/docker-robot-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248961186,"owners_count":21189991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","chrome","docker","firefox","microsoft-edge","playwright","robot-framework","selenium"],"created_at":"2024-08-01T13:00:51.978Z","updated_at":"2025-04-14T20:57:36.943Z","avatar_url":"https://github.com/ppodgorsek.png","language":"Dockerfile","readme":"# Robot Framework in Docker, with Firefox, Chrome and Microsoft Edge\n\n## Table of contents\n\n* [What is it?](#what-is-it)\n* [Versioning](#versioning)\n* [Running the container](#running-the-container)\n    * [Switching browsers](#switching-browsers)\n    * [Changing the container's screen resolution](#changing-the-containers-screen-resolution)\n    * [Changing the container's tests and reports directories](#changing-the-containers-tests-and-reports-directories)\n    * [Parallelisation](#parallelisation)\n        * [Parallelisation options](#parallelisation-options)\n    * [Passing additional options](#passing-additional-options)\n    * [Testing emails](#testing-emails)\n    * [Dealing with Datetimes and Timezones](#dealing-with-datetimes-and-timezones)\n    * [Installing additional dependencies](#installing-additional-dependencies)\n* [Security consideration](#security-consideration)\n* [Continuous integration](#continuous-integration)\n    * [Azure DevOps pipeline](#ci-azure-devops)\n    * [Jenkins pipeline](#ci-jenkins)\n    * [Defining a test run ID](#defining-a-test-run-id)\n    * [Upload test reports to an AWS S3 bucket](#upload-test-reports-to-an-aws-s3-bucket)\n* [Testing this project](#testing-this-project)\n* [Troubleshooting](#troubleshooting)\n    * [Chromium is crashing](#chromium-is-crashing)\n    * [Accessing the logs](#accessing-the-logs)\n    * [Error: Suite contains no tests](#error-suite-contains-no-tests)\n    * [Database tests are failing in spite of the DatabaseLibrary being present](#database-tests-are-failing-in-spite-of-the-databaselibrary-being-present)\n    * [Supported devices and architectures](#supported-devices-and-architectures)\n* [Please contribute!](#please-contribute)\n\n-----\n\n\u003ca name=\"what-is-it\"\u003e\u003c/a\u003e\n\n## What is it?\n\nThis project consists of a container image containing a Robot Framework installation.\n\nThis installation also contains Firefox, Chrome, Microsoft Edge, along with the Selenium and Playwright/RFBrowser library for Robot Framework.\n\n\u003ca name=\"versioning\"\u003e\u003c/a\u003e\n\n## Versioning\n\nThe versioning of this image follows the one of Robot Framework:\n\n* Major version matches the one of Robot Framework\n* Minor and patch versions are specific to this project (allows to update the versions of the other dependencies)\n\nThe versions used are:\n\n* [Robot Framework](https://github.com/robotframework/robotframework) 7.2.2\n* [Robot Framework Browser (Playwright) Library](https://github.com/MarketSquare/robotframework-browser) 19.4.0\n* [Robot Framework DatabaseLibrary](https://github.com/franz-see/Robotframework-Database-Library) 2.1.3\n* [Robot Framework Datadriver](https://github.com/Snooz82/robotframework-datadriver) 1.11.2\n* [Robot Framework DateTimeTZ](https://github.com/testautomation/DateTimeTZ) 1.0.6\n* [Robot Framework Faker](https://github.com/guykisel/robotframework-faker) 5.0.0\n* [Robot Framework FTPLibrary](https://github.com/kowalpy/Robot-Framework-FTP-Library) 1.9\n* [Robot Framework IMAPLibrary 2](https://pypi.org/project/robotframework-imaplibrary2/) 0.4.11\n* [Robot Framework Pabot](https://github.com/mkorpela/pabot) 4.1.1\n* [Robot Framework Requests](https://github.com/bulkan/robotframework-requests) 0.9.7\n* [Robot Framework SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary) 6.7.1\n* [Robot Framework SSHLibrary](https://github.com/robotframework/SSHLibrary) 3.8.0\n* [Axe Selenium Library](https://github.com/mozilla-services/axe-selenium-python) 2.1.6\n* Firefox 137.0\n* [Chrome for Testing](https://googlechromelabs.github.io/chrome-for-testing/) 135.0\n* Microsoft Edge 135.0\n* [Amazon AWS CLI](https://pypi.org/project/awscli/) 1.38.31\n\nAs stated by [the official GitHub project](https://github.com/robotframework/Selenium2Library), starting from version 3.0, Selenium2Library is renamed to SeleniumLibrary and this project exists mainly to help with transitioning. The Selenium2Library 3.0.0 is also the last release and for new releases, please look at the [SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary) project.\n\n\u003ca name=\"running-the-container\"\u003e\u003c/a\u003e\n\n## Running the container\n\nThis container can be run using the following command:\n\n```sh\ndocker run \\\n    -v \u003clocal path to the reports' folder\u003e:/opt/robotframework/reports:Z \\\n    -v \u003clocal path to the test suites' folder\u003e:/opt/robotframework/tests:Z \\\n    ppodgorsek/robot-framework:\u003cversion\u003e\n```\n\n\u003ca name=\"switching-browsers\"\u003e\u003c/a\u003e\n\n### Switching browsers\n\nBrowsers can be easily switched. It is recommended to define `${BROWSER} %{BROWSER}` in your Robot variables and to use `${BROWSER}` in your test cases. This allows to set the browser in a single place if needed.\n\nWhen running your tests, simply add `-e BROWSER=chrome`, `-e BROWSER=firefox` or `-e BROWSER=edge`to the run command.\n\nPlease note: `edge` will work with Selenium but not the Browser Library, as the latter currently doesn't have an easy mechanism to install additional browsers. Playwright, on which the Browser library relies, cannot install additional browsers on Linux platforms other than Ubuntu/Debian and [suggests using Chromium to test Microsoft Edge scenarios](https://playwright.dev/docs/browsers), unless you require Edge-specific capabilities.\n\n\u003ca name=\"changing-the-containers-screen-resolution\"\u003e\u003c/a\u003e\n\n### Changing the container's screen resolution\n\nIt is possible to define the settings of the virtual screen in which the browser is run by changing several environment variables:\n\n* `SCREEN_COLOUR_DEPTH` (default: 24)\n* `SCREEN_HEIGHT` (default: 1080)\n* `SCREEN_WIDTH` (default: 1920)\n\n\u003ca name=\"changing-the-containers-tests-and-reports-directories\"\u003e\u003c/a\u003e\n\n### Changing the container's tests and reports directories\n\nIt is possible to use different directories to read tests from and to generate reports to. This is useful when using a complex test file structure. To change the defaults, set the following environment variables:\n\n* `ROBOT_REPORTS_DIR` (default: /opt/robotframework/reports)\n* `ROBOT_TESTS_DIR` (default: /opt/robotframework/tests)\n\n\u003ca name=\"parallelisation\"\u003e\u003c/a\u003e\n\n### Parallelisation\n\nIt is possible to parallelise the execution of your test suites. Simply define the `ROBOT_THREADS` environment variable, for example:\n\n```sh\ndocker run \\\n    -e ROBOT_THREADS=4 \\\n    ppodgorsek/robot-framework:latest\n```\n\nBy default, there is no parallelisation.\n\n\u003ca name=\"parallelisation-options\"\u003e\u003c/a\u003e\n\n#### Parallelisation options\n\nWhen using parallelisation, it is possible to pass additional [pabot options](https://github.com/mkorpela/pabot#command-line-options), such as `--testlevelsplit`, `--argumentfile`, `--ordering`, etc. These can be passed by using the `PABOT_OPTIONS` environment variable, for example:\n\n```sh\ndocker run \\\n    -e ROBOT_THREADS=4 \\\n    -e PABOT_OPTIONS=\"--testlevelsplit\" \\\n    ppodgorsek/robot-framework:latest\n```\n\n\u003ca name=\"passing-additional-options\"\u003e\u003c/a\u003e\n\n### Passing additional options\n\nRobotFramework supports many options such as `--exclude`, `--variable`, `--loglevel`, etc. These can be passed by using the `ROBOT_OPTIONS` environment variable, for example:\n\n```sh\ndocker run \\\n    -e ROBOT_OPTIONS=\"--loglevel DEBUG\" \\\n    ppodgorsek/robot-framework:latest\n```\n\n\u003ca name=\"testing-emails\"\u003e\u003c/a\u003e\n\n### Testing emails\n\nThis project includes the IMAP library which allows Robot Framework to connect to email servers.\n\nA suggestion to automate email testing is to run a [Mailcatcher instance in Docker which allows IMAP connections](https://github.com/estelora/docker-mailcatcher-imap). This will ensure emails are discarded once the tests have been run.\n\n\u003ca name=\"dealing-with-datetimes-and-timezones\"\u003e\u003c/a\u003e\n\n### Dealing with Datetimes and Timezones\n\nThis project is meant to allow your tests to run anywhere. Sometimes that can be in a different timezone than your local one or of the location under test. To help solve such issues, this image includes the [DateTimeTZ Library](https://testautomation.github.io/DateTimeTZ/doc/DateTimeTZ.html).\n\nTo set the timezone used inside the Docker image, you can set the `TZ` environment variable:\n\n```sh\ndocker run \\\n    -e TZ=America/New_York \\\n    ppodgorsek/robot-framework:latest\n```\n\n\u003ca name=\"installing-additional-dependencies\"\u003e\u003c/a\u003e\n\n### Installing additional dependencies\n\nIt is possible to install additional dependencies dynamically at runtime rather than having to extend this image.\n\nTo do so, simply mount a text file containing the list of dependencies you would like to install using `pip`: (by default, this file is empty if not mounted)\n\n```sh\ndocker run \\\n    -v \u003clocal path to the dependency file\u003e:/opt/robotframework/pip-requirements.txt:Z \\\n    -v \u003clocal path to the test suites' folder\u003e:/opt/robotframework/tests:Z \\\n    ppodgorsek/robot-framework:latest\n```\n\nThe file must follow [Pip's official requirements file format](https://pip.pypa.io/en/stable/reference/requirements-file-format/).\n\nHere is a example of what such a file could contain:\n\n```\nrobotframework-docker==1.4.2\nrpa==1.50.0\n```\n\n**For large dependencies, it is still recommended to extend the project's image and to add them there, to avoid delaying the CI/CD pipelines with repeated dependency installations.**\n\n\u003ca name=\"security-considerations\"\u003e\u003c/a\u003e\n\n## Security consideration\n\nBy default, containers are implicitly run using `--user=1000:1000`, please remember to adjust that command-line setting accordingly, for example:\n\n```sh\ndocker run \\\n    --user=1001:1001 \\\n    ppodgorsek/robot-framework:latest\n```\n\nRemember that that UID/GID should be allowed to access the mounted volumes in order to read the test suites and to write the output.\n\nAdditionally, it is possible to rely on user namespaces to further secure the execution. This is well described in the official container documentation:\n\n* Docker: [Introduction to User Namespaces in Docker Engine](https://success.docker.com/article/introduction-to-user-namespaces-in-docker-engine)\n* Podman: [Running rootless Podman as a non-root user](https://www.redhat.com/sysadmin/rootless-podman-makes-sense)\n\nThis is a good security practice to make sure containers cannot perform unwanted changes on the host. In that sense, Podman is probably well ahead of Docker by not relying on a root daemon to run its containers.\n\n\u003ca name=\"continuous-integration\"\u003e\u003c/a\u003e\n\n## Continuous integration\n\n\u003ca name=\"ci-azure-devops\"\u003e\u003c/a\u003e\n\n### Azure DevOps pipeline\n\nAzure DevOps provides a `Docker@2` task but it only allows a limited number of commands, it is therefore required to use a `script` instead:\n\n```yml\n- job: FunctionalRegressionTests\n  displayName: Robot Framework tests\n  steps:\n    - script: |\n        set -x\n\n        mkdir -p $(Build.Repository.LocalPath)/robot-framework-reports\n        chmod -R ugo+rwx $(Build.Repository.LocalPath)/robot-framework-reports\n\n        # The ROBOT_OPTIONS allow to generate a specific output file that can be\n        # used to publish test results in the Azure DevOps pipeline run\n        # Remember to replace ${{ parameters.robotFrameworkFolder }} by the correct\n        # folder name in your repository\n        docker run --rm \\\n          --shm-size=1g \\\n          -v $(Build.Repository.LocalPath)/robot-framework-reports:/opt/robotframework/reports:Z \\\n          -v $(Build.Repository.LocalPath)/${{ parameters.robotFrameworkFolder }}:/opt/robotframework/tests:Z \\\n          -e ROBOT_OPTIONS=\"-x outputxunit.xml\" \\\n          -t docker.io/ppodgorsek/robot-framework:latest\n      displayName: Run Robot Framework tests\n\n    - task: PublishTestResults@2\n      condition: always()\n      displayName: Publish Robot Framework test results\n        inputs:\n          testResultsFormat: 'JUnit'\n          testResultsFiles: '**/outputxunit.xml'\n          searchFolder: '$(Build.Repository.LocalPath)/robot-framework-reports'\n          failTaskOnFailedTests: true\n          failTaskOnFailureToPublishResults: true\n          failTaskOnMissingResultsFile: true\n```\n\n\u003ca name=\"ci-jenkins\"\u003e\u003c/a\u003e\n\n### Jenkins pipeline\n\nIt is possible to run the project from within a Jenkins pipeline by relying on the shell command line directly:\n\n```yml\npipeline {\n  agent any\n  stages {\n    stage('Functional regression tests') {\n      steps {\n        sh \"docker run --shm-size=1g -e BROWSER=firefox -v $WORKSPACE/robot-tests:/opt/robotframework/tests:Z -v $WORKSPACE/robot-reports:/opt/robotframework/reports:Z ppodgorsek/robot-framework:latest\"\n      }\n    }\n  }\n}\n```\n\nThe pipeline stage can also rely on a Docker agent, as shown in the example below:\n\n```yml\npipeline {\n  agent none\n  stages {\n    stage('Functional regression tests') {\n      agent { docker {\n        image 'ppodgorsek/robot-framework:latest'\n        args '--shm-size=1g -u root' }\n      }\n      environment {\n        BROWSER = 'firefox'\n        ROBOT_TESTS_DIR = \"$WORKSPACE/robot-tests\"\n        ROBOT_REPORTS_DIR = \"$WORKSPACE/robot-reports\"\n      }\n      steps {\n        sh '''\n          /opt/robotframework/bin/run-tests-in-virtual-screen.sh\n        '''\n      }\n    }\n  }\n}\n```\n\n\u003ca name=\"defining-a-test-run-id\"\u003e\u003c/a\u003e\n\n### Defining a test run ID\n\nWhen relying on Continuous Integration tools, it can be useful to define a test run ID such as the build number or branch name to avoid overwriting consecutive execution reports.\n\nFor that purpose, the `ROBOT_TEST_RUN_ID` variable was introduced:\n* If the test run ID is empty, the reports folder will be: `${ROBOT_REPORTS_DIR}/`\n* If the test run ID was provided, the reports folder will be: `${ROBOT_REPORTS_DIR}/${ROBOT_TEST_RUN_ID}/`\n\nIt can simply be passed during the execution, such as:\n\n```sh\ndocker run \\\n    -e ROBOT_TEST_RUN_ID=\"feature/branch-name\" \\\n    ppodgorsek/robot-framework:latest\n```\n\nBy default, the test run ID is empty.\n\n\u003ca name=\"upload-test-reports-to-an-aws-s3-bucket\"\u003e\u003c/a\u003e\n\n### Upload test reports to an AWS S3 bucket\n\nTo upload the report of a test run to an S3 bucket, you need to define the following environment variables:\n\n```sh\ndocker run \\\n    -e AWS_ACCESS_KEY_ID=\u003cyour AWS key\u003e \\\n    -e AWS_SECRET_ACCESS_KEY=\u003cyour AWS secret\u003e \\\n    -e AWS_DEFAULT_REGION=\u003cyour AWS region e.g. eu-central-1\u003e \\\n    -e AWS_BUCKET_NAME=\u003cname of your S3 bucket\u003e \\\n    ppodgorsek/robot-framework:latest\n```\n\n\u003ca name=\"testing-this-project\"\u003e\u003c/a\u003e\n\n## Testing this project\n\nNot convinced yet? Simple tests have been prepared in the `test/` folder, you can run them using the following commands:\n\n```sh\n# Using Chromium\ndocker run \\\n    -v `pwd`/reports:/opt/robotframework/reports:Z \\\n    -v `pwd`/test:/opt/robotframework/tests:Z \\\n    -e BROWSER=chrome \\\n    ppodgorsek/robot-framework:latest\n\n# Using Firefox\ndocker run \\\n    -v `pwd`/reports:/opt/robotframework/reports:Z \\\n    -v `pwd`/test:/opt/robotframework/tests:Z \\\n    -e BROWSER=firefox \\\n    ppodgorsek/robot-framework:latest\n```\n\nFor Windows users who use **PowerShell**, the commands are slightly different:\n\n```sh\n# Using Chromium\ndocker run \\\n    -v ${PWD}/reports:/opt/robotframework/reports:Z \\\n    -v ${PWD}/test:/opt/robotframework/tests:Z \\\n    -e BROWSER=chrome \\\n    ppodgorsek/robot-framework:latest\n\n# Using Firefox\ndocker run \\\n    -v ${PWD}/reports:/opt/robotframework/reports:Z \\\n    -v ${PWD}/test:/opt/robotframework/tests:Z \\\n    -e BROWSER=firefox \\\n    ppodgorsek/robot-framework:latest\n```\n\nScreenshots of the results will be available in the `reports/` folder.\n\n\u003ca name=\"troubleshooting\"\u003e\u003c/a\u003e\n\n## Troubleshooting\n\n\u003ca name=\"chromium-is-crashing\"\u003e\u003c/a\u003e\n\n### Chromium is crashing\n\nChrome drivers might crash due to the small size of `/dev/shm` in the docker container:\n\n\u003e UnknownError: session deleted because of page crash\n\nThis is [a known bug of Chromium](https://bugs.chromium.org/p/chromium/issues/detail?id=715363).\n\nTo avoid this error, please change the shm size when starting the container by adding the following parameter: `--shm-size=1g` (or any other size more suited to your tests)\n\n\u003ca name=\"accessing-the-logs\"\u003e\u003c/a\u003e\n\n### Accessing the logs\n\nIn case further investigation is required, the logs can be accessed by mounting their folder. Simply add the following parameter to your `run` command:\n\n* Linux/Mac: ``-v `pwd`/logs:/var/log:Z``\n* Windows: ``-v ${PWD}/logs:/var/log:Z``\n\nChromium allows to set additional environment properties, which can be useful when debugging:\n\n* `webdriver.chrome.verboseLogging=true`: enables the verbose logging mode\n* `webdriver.chrome.logfile=/path/to/chromedriver.log`: sets the path to Chromium's log file\n\n\u003ca name=\"error-suite-contains-no-tests\"\u003e\u003c/a\u003e\n\n### Error: Suite contains no tests\n\nWhen running tests, an unexpected error sometimes occurs:\n\n\u003e [Error] Suite contains no tests.\n\nThere are two main causes to this:\n* Either the test folder is not the right one,\n* Or the permissions on the test folder/test files are too restrictive.\n\nAs there can sometimes be issues as to where the tests are run from, make sure the correct folder is used by trying the following actions:\n* Use a full path to the folder instead of a relative one,\n* Replace any`` `pwd` ``or `${PWD}` by the full path to the folder.\n\nIt is also important to check if Robot Framework is allowed to access the resources it needs, i.e.:\n* The folder where the tests are located,\n* The test files themselves.\n\n\u003ca name=\"database-tests-are-failing-in-spite-of-the-databaselibrary-being-present\"\u003e\u003c/a\u003e\n\n### Database tests are failing in spite of the DatabaseLibrary being present\n\nAs per their official project page, the [Robot Framework DatabaseLibrary](https://github.com/franz-see/Robotframework-Database-Library) contains utilities meant for Robot Framework's usage. This can allow you to query your database after an action has been made to verify the results. This is compatible with any Database API Specification 2.0 module.\n\nIt is anyway mandatory to extend the container image to install the specific database module relevant to your tests, such as:\n* [MS SQL](https://pymssql.readthedocs.io/en/latest/intro.html): `pip install pymssql`\n* [MySQL](https://dev.mysql.com/downloads/connector/python/): `pip install pymysql`\n* [Oracle](https://www.oracle.com/uk/database/technologies/appdev/python.html): `pip install py2oracle`\n* [PostgreSQL](http://pybrary.net/pg8000/index.html): `pip install pg8000`\n\n\u003ca name=\"supported-devices-and-architectures\"\u003e\u003c/a\u003e\n\n### Supported devices and architectures\n\nAs mentioned on the [Docker Hub](https://hub.docker.com/r/ppodgorsek/robot-framework), the project has been built and uploaded as a `linux/amd64` image only. This means ARM devices such as MacBook M1/M2 and Amazon EC2 Graviton won't be able to run the image with the default configuration.\n\nAs mentioned in the official documentation, [Podman](https://docs.podman.io/en/latest/markdown/podman-run.1.html#platform-os-arch) and [Docker](https://docs.docker.com/build/building/multi-platform/) provide a `--platform` option which selects a given application architecture, such as:\n\n```sh\ndocker run \\\n    --platform linux/amd64 \\\n    -v \u003clocal path to the reports' folder\u003e:/opt/robotframework/reports:Z \\\n    -v \u003clocal path to the test suites' folder\u003e:/opt/robotframework/tests:Z \\\n    ppodgorsek/robot-framework:\u003cversion\u003e\n```\n\nPlease note: builds and automated tests of this project will remain performed on a `linux/amd64` architecture so such emulation might not work, depending on your device and operating system.\n\nIf this does not solve your platform-related issues, you will have to rebuild the image for your device/platform, specifying that `--platform` option during the build and run.\n\n\u003ca name=\"please-contribute\"\u003e\u003c/a\u003e\n\n## Please contribute!\n\nHave you found an issue? Do you have an idea for an improvement? Feel free to contribute by submitting it [on the GitHub project](https://github.com/ppodgorsek/docker-robot-framework/issues).\n","funding_links":["https://github.com/sponsors/ppodgorsek"],"categories":["Dockerfile","Tools"],"sub_categories":["Containerization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppodgorsek%2Fdocker-robot-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppodgorsek%2Fdocker-robot-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppodgorsek%2Fdocker-robot-framework/lists"}