{"id":15083605,"url":"https://github.com/jenkinsci/docker-inbound-agent","last_synced_at":"2025-10-05T14:31:20.342Z","repository":{"id":41268706,"uuid":"41536031","full_name":"jenkinsci/docker-inbound-agent","owner":"jenkinsci","description":"[Deprecated \u0026 ingrated in docker-agent] Docker image for a Jenkins agent which can connect to Jenkins using TCP or Websocket protocols","archived":true,"fork":false,"pushed_at":"2024-01-21T18:39:35.000Z","size":1069,"stargazers_count":475,"open_issues_count":2,"forks_count":528,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-09-26T06:03:45.914Z","etag":null,"topics":["agent","docker","docker-image","hacktoberfest","jenkins","jnlp","remoting"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/jenkins/inbound-agent/","language":"PowerShell","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/jenkinsci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"community_bridge":"jenkins","custom":["https://jenkins.io/donate/#why-donate"]}},"created_at":"2015-08-28T08:28:21.000Z","updated_at":"2024-09-05T06:22:31.000Z","dependencies_parsed_at":"2022-07-14T10:48:39.780Z","dependency_job_id":"b719cced-c7df-4c53-86f8-8f248ef195c6","html_url":"https://github.com/jenkinsci/docker-inbound-agent","commit_stats":{"total_commits":455,"total_committers":47,"mean_commits":9.680851063829786,"dds":0.6043956043956045,"last_synced_commit":"e520c783dea2027053841923a9468fda94990a33"},"previous_names":[],"tags_count":127,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-inbound-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-inbound-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-inbound-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-inbound-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/docker-inbound-agent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219877017,"owners_count":16554817,"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":["agent","docker","docker-image","hacktoberfest","jenkins","jnlp","remoting"],"created_at":"2024-09-25T06:03:58.844Z","updated_at":"2025-10-05T14:31:19.977Z","avatar_url":"https://github.com/jenkinsci.png","language":"PowerShell","funding_links":["https://funding.communitybridge.org/projects/jenkins","https://jenkins.io/donate/#why-donate"],"categories":["PowerShell"],"sub_categories":[],"readme":"# Docker image for inbound Jenkins agents\n\n\u003e [!IMPORTANT]\n\u003e This repository is deprecated, its content is now included in https://github.com/jenkinsci/docker-agent/.\n\u003e \n\u003e Since https://github.com/jenkinsci/docker-agent/pull/570 both `agent` and `inbound-agent` images are built from https://github.com/jenkinsci/docker-agent/ repository, thanks to the use of [multi-stage Dockerfiles](https://docs.docker.com/build/building/multi-stage/) and to the use of targets.\n\u003e\n\u003e See https://github.com/jenkinsci/docker-agent/issues/569 for more details.\n\u003e\n\u003e Note that it doesn't change anything on the Docker hub side, these images still have their own Docker repositories `jenkins/agent` and `jenkins/inbound-agent`.\n\n[![Join the chat at https://gitter.im/jenkinsci/docker](https://badges.gitter.im/jenkinsci/docker.svg)](https://gitter.im/jenkinsci/docker?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![GitHub stars](https://img.shields.io/github/stars/jenkinsci/docker-inbound-agent?label=GitHub%20stars)](https://github.com/jenkinsci/docker-inbound-agent)\n[![Docker Pulls](https://img.shields.io/docker/pulls/jenkins/inbound-agent.svg)](https://hub.docker.com/r/jenkins/inbound-agent/)\n[![GitHub release](https://img.shields.io/github/release/jenkinsci/docker-inbound-agent.svg?label=changelog)](https://github.com/jenkinsci/docker-inbound-agent/releases/latest)\n\n:exclamation: **Warning!** This image used to be published as [jenkinsci/jnlp-slave](https://hub.docker.com/r/jenkinsci/jnlp-slave/) and [jenkins/jnlp-slave](https://hub.docker.com/r/jenkins/jnlp-slave/).\nThese images are deprecated, use [jenkins/inbound-agent](https://hub.docker.com/r/jenkins/inbound-agent/).\n\nThis is an image for [Jenkins](https://jenkins.io) agents using TCP or WebSockets to establish inbound connection to the Jenkins master.\nThis agent is powered by the [Jenkins Remoting library](https://github.com/jenkinsci/remoting), which version is being taken from the base [Docker Agent](https://github.com/jenkinsci/docker-agent/) image.\n\nSee [Using Agents](https://www.jenkins.io/doc/book/using/using-agents/) for more info.\n\n## Configuring agents with this container image\n\n### Setup the agent on Jenkins\n\n1. Go to your Jenkins dashboard\n2. Go to `Manage Jenkins` option in main menu\n3. Go to `Nodes` item in `System Configuration`\n  ![image](images/screen-4.png)\n4. Go to `New Node` option in side menu\n5. Fill the Node(agent) name and select the type; (e.g. Name: agent1, Type: Permanent Agent)\n6. Now fill the fields like remote root directory, labels, # of executors, etc.\n  * **`Launch method` is `Launch agent by connecting it to the controller`**\n    ![image](images/screen-1.png)\n7. Press the `Save` button and the agent1 will be registered, but offline for the time being. Click on it.\n  ![image](images/screen-2.png)\n8. You should now see the secret. Use the secret value to pass it to the argument of container, or set to `JENKINS_SECRET` as environment variable.\n  ![image](images/screen-3.png)\n\n### Running this container\n\nTo run a Docker container\n  \u003e **Note**  \n  \u003e Remember to replace the `\u003csecret\u003e` and `\u003cagent name\u003e` for secret and agent name, which can be you can get(and set) from [above section](#Setup-the-agent-on-Jenkins).  \n  \u003e Your agent node should be possible to connect to Jenkins controller with agent port (not Jenkins server's port like 80, 443, 8080), which can be set in `Manage Jenkins` \u003e `Security` \u003e `Agent`. Default port is 50000.  \n\n  Linux agent:\n\n    docker run --init jenkins/inbound-agent -url http://jenkins-server:port \u003csecret\u003e \u003cagent name\u003e\n  Note: `--init` is necessary for correct subprocesses handling (zombie reaping)\n\n  Windows agent:\n\n    docker run jenkins/inbound-agent:windowsservercore-ltsc2019 -Url http://jenkins-server:port -Secret \u003csecret\u003e -Name \u003cagent name\u003e\n\nTo run a Docker container with [Work Directory](https://github.com/jenkinsci/remoting/blob/master/docs/workDir.md)\n\n  Linux agent:\n\n    docker run --init jenkins/inbound-agent -url http://jenkins-server:port -workDir=/home/jenkins/agent \u003csecret\u003e \u003cagent name\u003e\n\n  Windows agent:\n\n    docker run jenkins/inbound-agent:windowsservercore-ltsc2019 -Url http://jenkins-server:port -WorkDir=C:/Jenkins/agent -Secret \u003csecret\u003e -Name \u003cagent name\u003e\n\nOptional environment variables:\n\n* `JENKINS_JAVA_BIN`: Path to Java executable to use instead of the default in PATH or obtained from JAVA_HOME\n* `JENKINS_JAVA_OPTS` : Java Options to use for the remoting process, otherwise obtained from JAVA_OPTS, **Warning** :exclamation: For more information on Windows usage, please see the **Windows Jenkins Java Opts** [section below](#windows-jenkins-java-opts).\n* `JENKINS_URL`: url for the Jenkins server, can be used as a replacement to `-url` option, or to set alternate jenkins URL\n* `JENKINS_TUNNEL`: (`HOST:PORT`) connect to this agent host and port instead of Jenkins server, assuming this one do route TCP traffic to Jenkins controller. Useful when when Jenkins runs behind a load balancer, reverse proxy, etc.\n* `JENKINS_SECRET`: (use only if not set as an argument) the secret as shown on the controller after creating the agent\n* `JENKINS_AGENT_NAME`: (use only if not set as an argument) the name of the agent, it should match the name you specified when creating the agent on the controller\n* `JENKINS_AGENT_WORKDIR`: agent work directory, if not set by optional parameter `-workDir`\n* `JENKINS_WEB_SOCKET`: `true` if the connection should be made via WebSocket rather than TCP\n* `JENKINS_DIRECT_CONNECTION`: (`HOST:PORT`) Connect directly to this TCP agent port, skipping the HTTP(S) connection parameter download.\n* `JENKINS_INSTANCE_IDENTITY`: The base64 encoded InstanceIdentity byte array of the Jenkins controller. When this is set, the agent skips connecting to an HTTP(S) port for connection info.\n* `JENKINS_PROTOCOLS`: Specify the remoting protocols to attempt when `JENKINS_INSTANCE_IDENTITY` is provided.\n\n#### Example\n\n1. Enter the command above.\n  ![image](images/screen-5.png)\n2. Check the Jenkins dashboard if the agent is connected well.\n  ![image](images/screen-6.png)\n\n\n## Windows Jenkins Java Opts\n\nThe processing of the JENKINS_JAVA_OPTS environment variable or -JenkinsJavaOpts command line parameter follow the [command parsing semantics of Powershell](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_parsing?view=powershell-7.3). This means that if a parameter contains any characters that are part of an expression in Powershell, it will need to be surrounded by quotes. \nFor example:\n\n-XX:+PrintCommandLineFlags --show-version\n\nThis would need to be escaped with quotes like this:\n\n\"-XX:+PrintCommandLineFlags\" --show-version\n\nOr another example:\n-Dsome.property=some value --show-version\n\nThis would need to be escaped like this:\n\n\"-Dsome.property='some value'\" --show-version\n\n\n## Configuration specifics\n\n### Enabled JNLP protocols\n\nAs of version 3.40-1 this image only supports the [JNLP4-connect](https://github.com/jenkinsci/remoting/blob/master/docs/protocols.md#jnlp4-connect) protocol.\nEarlier, long-unsupported protocols have been removed.\nAs a result, Jenkins versions prior to 2.32 are no longer supported.\n\n### Amazon ECS\n\nMake sure your ECS container agent is [updated](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) before running. Older versions do not properly handle the entryPoint parameter. See the [entryPoint](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definitions) definition for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fdocker-inbound-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fdocker-inbound-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fdocker-inbound-agent/lists"}