- Release Notes
- Getting Started
- UiPath Assistant
- Installation and Upgrade
- Robot Types
- Robot Components
- Licensing
- Connecting Robots to Orchestrator
- Processes and Activities
- Logging
- Robot JavaScript SDK
- Specific Scenarios
- Windows Sessions
- Login Using Thales Luna Credential System
- Login Using NShield Key Storage Provider
- Redirecting Robots Through a Proxy Server
- Executing Tasks in a Minimized RDP Window
- Using Mapped Network Drives
- Stopping a Process
- Disable Stop Button
- Custom Package Folders and Network Paths
- CrowdStrike Integration
- Restarting Robot Components
- Troubleshooting
- About Troubleshooting
- Unresponsive Robot Over RDP
- Duplicate Execution Logs
- Frequently Encountered Robot Errors
- Increased Process Execution Duration
- Enforced Package Signature Verification
- Message Too Large to Process
- Errors When Running as Administrator
- NuGet Packages Not Accessible After Migration
- User Access Control Prompt and UI Automation Activities
Linux Robots
Using Robots in Linux environments enables you to run unattended automations in Docker containers, providing an easy way to scale up your deployment.
The Linux robot image referenced in this document can only run processes developed as cross-platform that do not require UI Interaction. To run processes that require a user interface, you need to use the Linux docker image built for Chrome Automation.
- Docker Environment.
- Network connection to Orchestrator.
- Machine or Machine Template Key.
Linux robots can only run unattended automations. When creating an automation, make sure to select the Cross-platform compatibility. This way, only cross-platform activities are shown, while unsupported ones are hidden.
The default activities packages for cross-platform projects are:
- UiPath.System.Activities
- UiPath.UIAutomation.Activities
Create an unattended robot in orchestrator, as shown in this document, then save the machine key so it can be used later.
-
Open a command line terminal and get the docker image using the following command:
docker pull registry.uipath.com/robot/runtimedocker pull registry.uipath.com/robot/runtime:<tag>
docker pull registry.uipath.com/robot/runtimedocker pull registry.uipath.com/robot/runtime:<tag> -
Start the downloaded image using the parameters to connect the Robot to Orchestrator using the command below:
docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -ti registry.uipath.com/robot/runtime
docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -ti registry.uipath.com/robot/runtimeNote: To retrieve or start a specific version of the robot, replace the<tag>
parameter with the actual version from the Docker Image Tags column in the table below:Robot Version
Docker Image Tags
2022.4
22.4.68.30958-robot22.4.6 Not using any tag retrieves the most recent enterprise patch for the latest enterprise version.
Important: If you encounter issues connecting the robot to Orchestrator, this might be caused by a host machine configuration (e.g. firewall rules). To resolve this, add a specific DNS server in the command.Example:docker run --dns="1.1.1.1" -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e MACHINE_KEY="$KEY" -tid registry.uipath.com/robot/runtime
Where1.1.1.1
refers to the public DNS resolver from Cloudflare. This can be any DNS resolver that can resolve the SignalR Hub.Important:In order to successfully start the robot, you must accept the license agreement by adding the-e LICENSE_AGREEMENT=accept
parameter in the command.Every time you run the command presented in step 2, a new robot is spawned in Orchestrator.
-
To see the status of your robots on the machine use the following command:
docker ps -a
docker ps -a -
To disconnect a robot use the command below:
docker stop {container_id}
docker stop {container_id}Important: Usingdocker kill container_id
stops the robot on the machine but does not disconnect it from Orchestrator. -
To reconnect a specific robot use the command below:
docker start {container_id}
docker start {container_id}
If you need to persist log files beyond the lifecycle of the container instance, use the following command:
docker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtime
docker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -v C:\Users\user.name\Desktop\logs:/root/.local/share/UiPath/Logs/ -ti registry.uipath.com/robot/runtime
mcr.microsoft.com/dotnet/runtime
. All files required by the application are placed in the /root/application directory
.
/root/.local/share/UiPath/Packages/
directory on the docker container. If you want to configure specific packages for the host machine, you can configure the
volume which should be used to persist the nuget packages using the following command:
docker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v <path to packages>:/root/.local/share/UiPath/Packages/ -ti registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -v <path to packages>:/root/.local/share/UiPath/Packages/ -ti registry.uipath.com/robot/runtime
docker run -e LICENSE_AGREEMENT=accept -e MACHINE_KEY="{machine_key}" -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -v <path to packages>:/root/.local/share/UiPath/Packages/ -ti registry.uipath.com/robot/runtimedocker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/organization/tentant/orchestrator_" -e CLIENT_ID="$Client_ID" -e CLIENT_SECRET="$Client_secret" -v <path to packages>:/root/.local/share/UiPath/Packages/ -ti registry.uipath.com/robot/runtime
<path to packages>
refers to the location on the host machine.
The procedure for running an unattended job on Linux robots is identical to the one for Windows.
To test your process, you can enable debug mode using the following command:
docker run -e LICENSE_AGREEMENT=accept -e DEBUG_SESSION=true -ti -p8573:8573 registry.uipath.com/robot/runtime
docker run -e LICENSE_AGREEMENT=accept -e DEBUG_SESSION=true -ti -p8573:8573 registry.uipath.com/robot/runtime
8573
. After the container is started, you can connect to the docker image using the host machine ip
and the port 8573
making use of the Studio Remote Debugging feature.
If you want to debug an already started Robocontainer, you can use the unattended roboot connection feature with a robot container connected to the orchestrator.