{"id":37751190,"url":"https://github.com/jenkinsci/docker-agents","last_synced_at":"2026-04-01T21:53:44.090Z","repository":{"id":39635154,"uuid":"42661425","full_name":"jenkinsci/docker-agents","owner":"jenkinsci","description":"Jenkins agent (base image) and inbound agent Docker images","archived":false,"fork":false,"pushed_at":"2026-03-21T13:36:42.000Z","size":2235,"stargazers_count":335,"open_issues_count":17,"forks_count":249,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-03-22T04:00:48.484Z","etag":null,"topics":["agent","docker","hacktoberfest","jenkins","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":null,"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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"community_bridge":"jenkins","custom":["https://www.jenkins.io/donate/#why-donate"]}},"created_at":"2015-09-17T14:37:19.000Z","updated_at":"2026-03-21T13:01:22.000Z","dependencies_parsed_at":"2022-07-10T22:33:31.452Z","dependency_job_id":"57139cc9-e75a-4782-9832-f1a86c62ddf1","html_url":"https://github.com/jenkinsci/docker-agents","commit_stats":{"total_commits":473,"total_committers":53,"mean_commits":8.924528301886792,"dds":0.7970401691331924,"last_synced_commit":"fb58dabebc84ee0d8b7e2b658a88f62f49fac90a"},"previous_names":["jenkinsci/docker-agents"],"tags_count":248,"template":false,"template_full_name":null,"purl":"pkg:github/jenkinsci/docker-agents","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-agents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-agents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-agents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-agents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/docker-agents/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fdocker-agents/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","hacktoberfest","jenkins","remoting"],"created_at":"2026-01-16T14:22:16.577Z","updated_at":"2026-04-01T21:53:44.068Z","avatar_url":"https://github.com/jenkinsci.png","language":"PowerShell","funding_links":["https://funding.communitybridge.org/projects/jenkins","https://www.jenkins.io/donate/#why-donate"],"categories":[],"sub_categories":[],"readme":"# Jenkins Agent and Inbound Agent Docker images\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-agent?label=GitHub%20stars)](https://github.com/jenkinsci/docker-agents)\n[![GitHub release](https://img.shields.io/github/release/jenkinsci/docker-agent.svg?label=changelog)](https://github.com/jenkinsci/docker-agents/releases/latest)\n\nThis repository contains the definition of Jenkins agent and inbound agent Docker images.\n\n## agent\n[![Docker Pulls](https://img.shields.io/docker/pulls/jenkins/agent.svg)](https://hub.docker.com/r/jenkins/agent/)\n\nThis is a base image for Docker, which includes JDK and the Jenkins agent executable (agent.jar).\n\nSee [the `agent` README](./README_agent.md)\n\n## inbound-agent\n[![Docker Pulls](https://img.shields.io/docker/pulls/jenkins/inbound-agent.svg)](https://hub.docker.com/r/jenkins/inbound-agent/)\n\nThis is an image based on `agent` for [Jenkins](https://jenkins.io) agents using TCP or WebSockets to establish inbound connection to the Jenkins controller.\n\nSee [the `inbound-agent` README](./README_inbound-agent.md)\n\n## Building\n\n### Building and testing on Linux\n\n#### Target images\n\nIf you want to see the target images (matching your current OS and architecture) that will be built, you can issue the following command:\n\n```bash\n$ make list\n+ make --silent listarch-arm64\n+ make --silent showarch-arm64\n+ jq -r '.target | keys[]'\n+ make --silent show\n+ jq --arg arch linux/arm64 '.target |= with_entries(select(.value.platforms | index($arch)))'\n+ make --silent show-all\n+ docker buildx bake --file docker-bake.hcl --progress=quiet --print all\n+ jq\nagent_alpine_jdk21\nagent_alpine_jdk25\nagent_debian_jdk17\nagent_debian_jdk21\nagent_debian_jdk25\nagent_rhel_ubi9_jdk17\nagent_rhel_ubi9_jdk21\nagent_rhel_ubi9_jdk25\ninbound-agent_alpine_jdk21\ninbound-agent_alpine_jdk25\ninbound-agent_debian_jdk17\ninbound-agent_debian_jdk21\ninbound-agent_debian_jdk25\ninbound-agent_rhel_ubi9_jdk17\ninbound-agent_rhel_ubi9_jdk21\ninbound-agent_rhel_ubi9_jdk25\n```\n\nTo list them all:\n\n```bash\n$ make list-all\n+ make --silent show-all\n+ jq -r '.target | keys[]'\n+ docker buildx bake --file docker-bake.hcl --progress=quiet --print all\n+ jq\nagent_alpine_jdk17\nagent_alpine_jdk21\nagent_alpine_jdk25\nagent_debian_jdk17\nagent_debian_jdk21\nagent_debian_jdk25\nagent_nanoserver-ltsc2019_jdk17\nagent_nanoserver-ltsc2019_jdk21\nagent_nanoserver-ltsc2019_jdk25\nagent_nanoserver-ltsc2022_jdk17\nagent_nanoserver-ltsc2022_jdk21\nagent_nanoserver-ltsc2022_jdk25\nagent_rhel_ubi9_jdk17\nagent_rhel_ubi9_jdk21\nagent_rhel_ubi9_jdk25\nagent_windowsservercore-ltsc2019_jdk17\nagent_windowsservercore-ltsc2019_jdk21\nagent_windowsservercore-ltsc2019_jdk25\nagent_windowsservercore-ltsc2022_jdk17\nagent_windowsservercore-ltsc2022_jdk21\nagent_windowsservercore-ltsc2022_jdk25\ninbound-agent_alpine_jdk17\ninbound-agent_alpine_jdk21\ninbound-agent_alpine_jdk25\ninbound-agent_debian_jdk17\ninbound-agent_debian_jdk21\ninbound-agent_debian_jdk25\ninbound-agent_nanoserver-ltsc2019_jdk17\ninbound-agent_nanoserver-ltsc2019_jdk21\ninbound-agent_nanoserver-ltsc2019_jdk25\ninbound-agent_nanoserver-ltsc2022_jdk17\ninbound-agent_nanoserver-ltsc2022_jdk21\ninbound-agent_nanoserver-ltsc2022_jdk25\ninbound-agent_rhel_ubi9_jdk17\ninbound-agent_rhel_ubi9_jdk21\ninbound-agent_rhel_ubi9_jdk25\ninbound-agent_windowsservercore-ltsc2019_jdk17\ninbound-agent_windowsservercore-ltsc2019_jdk21\ninbound-agent_windowsservercore-ltsc2019_jdk25\ninbound-agent_windowsservercore-ltsc2022_jdk17\ninbound-agent_windowsservercore-ltsc2022_jdk21\ninbound-agent_windowsservercore-ltsc2022_jdk25\n```\n\nYou can see and use other targets by setting `OS` and/or `ARCH`:\n\n```\n$ OS=windows ARCH=amd64 make list\n+ make --silent listarch-amd64\n+ make --silent showarch-amd64\n+ jq -r '.target | keys[]'\n+ make --silent show\n+ jq --arg arch windows/amd64 '.target |= with_entries(select(.value.platforms | index($arch)))'\n+ make --silent show-all\n+ docker buildx bake --file docker-bake.hcl --progress=quiet --print all\n+ jq\nagent_nanoserver-ltsc2019_jdk17\nagent_nanoserver-ltsc2019_jdk21\nagent_nanoserver-ltsc2019_jdk25\nagent_nanoserver-ltsc2022_jdk17\nagent_nanoserver-ltsc2022_jdk21\nagent_nanoserver-ltsc2022_jdk25\nagent_windowsservercore-ltsc2019_jdk17\nagent_windowsservercore-ltsc2019_jdk21\nagent_windowsservercore-ltsc2019_jdk25\nagent_windowsservercore-ltsc2022_jdk17\nagent_windowsservercore-ltsc2022_jdk21\nagent_windowsservercore-ltsc2022_jdk25\ninbound-agent_nanoserver-ltsc2019_jdk17\ninbound-agent_nanoserver-ltsc2019_jdk21\ninbound-agent_nanoserver-ltsc2019_jdk25\ninbound-agent_nanoserver-ltsc2022_jdk17\ninbound-agent_nanoserver-ltsc2022_jdk21\ninbound-agent_nanoserver-ltsc2022_jdk25\ninbound-agent_windowsservercore-ltsc2019_jdk17\ninbound-agent_windowsservercore-ltsc2019_jdk21\ninbound-agent_windowsservercore-ltsc2019_jdk25\ninbound-agent_windowsservercore-ltsc2022_jdk17\ninbound-agent_windowsservercore-ltsc2022_jdk21\ninbound-agent_windowsservercore-ltsc2022_jdk25\n```\n\n#### Building a specific image\n\nIf you want to build a specific image, you can issue the following command:\n\n```bash\nmake build-\u003cAGENT_TYPE\u003e_\u003cLINUX_FLAVOR\u003e_\u003cJDK_VERSION\u003e\n```\n\nThat would give for an image of an inbound agent with JDK 17 on Debian:\n\n```bash\nmake build-inbound-agent_debian_jdk17\n```\n\n#### Building images supported by your current architecture\n\nThen, you can build the images supported by your current architecture by running:\n\n```bash\nmake build\n```\n\n#### Testing all images\n\nIf you want to test these images, you can run:\n\n```bash\nmake test\n```\n#### Testing a specific image\n\nIf you want to test a specific image, you can run:\n\n```bash\nmake test-\u003cAGENT_TYPE\u003e_\u003cLINUX_FLAVOR\u003e_\u003cJDK_VERSION\u003e\n```\n\nThat would give for an image of an inbound agent with JDK 17 on Debian:\n\n```bash\nmake test-inbound-agent_debian_jdk17\n```\n\n#### Building all images\n\nYou can build all images for your OS (even those unsupported by your current architecture) by running:\n\n```bash\nmake multiarchbuild\n```\n\n#### Other `make` targets\n\n##### Target `show`\n\nThis target (and `show-\u003cbake group\u003e`) gives us a detailed view of the images that could be built (with tags, platforms, and Dockerfiles), independently of your current OS or architecture.\n\nNote that to see all tags created on publication, you'll have to set `ON_TAG` to `true`.\n\n```json\n$ make show\n+ make --silent show-all\n+ docker buildx bake --file docker-bake.hcl --progress=quiet --print all\n+ jq\n{\n  \"group\": {\n    \"alpine\": {\n      \"targets\": [\n        \"agent_alpine_jdk17\",\n        \"agent_alpine_jdk21\",\n        \"inbound-agent_alpine_jdk17\",\n        \"inbound-agent_alpine_jdk21\"\n      ]\n    },\n    \"debian\": {\n      \"targets\": [\n        \"agent_debian_jdk17\",\n        \"agent_debian_jdk21\",\n        \"inbound-agent_debian_jdk17\",\n        \"inbound-agent_debian_jdk21\"\n      ]\n    },\n    \"default\": {\n      \"targets\": [\n        \"linux\"\n      ]\n    },\n    \"linux\": {\n      \"targets\": [\n        \"alpine\",\n        \"debian\",\n        \"rhel_ubi9\"\n      ]\n    },\n    \"rhel_ubi9\": {\n      \"targets\": [\n        \"agent_rhel_ubi9_jdk17\",\n        \"agent_rhel_ubi9_jdk21\",\n        \"inbound-agent_rhel_ubi9_jdk17\",\n        \"inbound-agent_rhel_ubi9_jdk21\"\n      ]\n    }\n  },\n  \"target\": {\n    \"agent_alpine_jdk17\": {\n      \"context\": \".\",\n      \"dockerfile\": \"alpine/Dockerfile\",\n      \"args\": {\n        \"ALPINE_TAG\": \"3.23.3\",\n        \"JAVA_VERSION\": \"17.0.18_8\",\n        \"VERSION\": \"3355.v388858a_47b_33\"\n      },\n      \"tags\": [\n        \"docker.io/jenkins/agent:alpine\",\n        \"docker.io/jenkins/agent:latest-alpine\",\n        \"docker.io/jenkins/agent:alpine-jdk17\",\n        \"docker.io/jenkins/agent:latest-alpine-jdk17\",\n        \"docker.io/jenkins/agent:alpine3.23\",\n        \"docker.io/jenkins/agent:latest-alpine3.23\",\n        \"docker.io/jenkins/agent:alpine3.23-jdk17\",\n        \"docker.io/jenkins/agent:latest-alpine3.23-jdk17\"\n      ],\n      \"target\": \"agent\",\n      \"platforms\": [\n        \"linux/amd64\"\n      ],\n      \"output\": [\n        {\n          \"type\": \"docker\"\n        }\n      ]\n    },\n    [...]\n  }\n}\n```\n\n##### Target `tags`\n\nTo view all tags, set `ON_TAG` (and eventually `BUILD_NUMBER`):\n```bash\n$ ON_TAG=true BUILD_NUMBER=3 make tags\n```\n\u003cdetails\u003e\u003csummary\u003eOutput\u003c/summary\u003e\n\n```\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine3.23 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine3.23-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine3.23-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-alpine3.23-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk17 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk17-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk17-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk17-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk17-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk21 (agent_debian_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk21-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk21-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk21-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk21-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk25 (agent_debian_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk25-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk25-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk25-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-jdk25-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-rhel-ubi9 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk17 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk21 (agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk25 (agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:3355.v388858a_47b_33-3-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:alpine (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:alpine-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:alpine-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:alpine-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:alpine3.23 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:alpine3.23-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:alpine3.23-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:alpine3.23-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:jdk17 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:jdk17-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:jdk17-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:jdk17-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:jdk17-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:jdk21 (agent_debian_jdk21)\ndocker.io/hlemeur/agent:jdk21-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:jdk21-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:jdk21-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:jdk21-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:jdk25 (agent_debian_jdk25)\ndocker.io/hlemeur/agent:jdk25-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:jdk25-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/agent:jdk25-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:jdk25-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk25)\ndocker.io/hlemeur/agent:latest (agent_debian_jdk17)\ndocker.io/hlemeur/agent:latest-alpine (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:latest-alpine-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:latest-alpine-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:latest-alpine-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:latest-alpine3.23 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:latest-alpine3.23-jdk17 (agent_alpine_jdk17)\ndocker.io/hlemeur/agent:latest-alpine3.23-jdk21 (agent_alpine_jdk21)\ndocker.io/hlemeur/agent:latest-alpine3.23-jdk25 (agent_alpine_jdk25)\ndocker.io/hlemeur/agent:latest-jdk17 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:latest-jdk21 (agent_debian_jdk21)\ndocker.io/hlemeur/agent:latest-jdk25 (agent_debian_jdk25)\ndocker.io/hlemeur/agent:latest-rhel-ubi9 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:latest-rhel-ubi9-jdk17 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:latest-rhel-ubi9-jdk21 (agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/agent:latest-rhel-ubi9-jdk25 (agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/agent:latest-trixie (agent_debian_jdk17)\ndocker.io/hlemeur/agent:latest-trixie-jdk17 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:latest-trixie-jdk21 (agent_debian_jdk21)\ndocker.io/hlemeur/agent:latest-trixie-jdk25 (agent_debian_jdk25)\ndocker.io/hlemeur/agent:nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:rhel-ubi9 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:rhel-ubi9-jdk17 (agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/agent:rhel-ubi9-jdk21 (agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/agent:rhel-ubi9-jdk25 (agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/agent:trixie (agent_debian_jdk17)\ndocker.io/hlemeur/agent:trixie-jdk17 (agent_debian_jdk17)\ndocker.io/hlemeur/agent:trixie-jdk21 (agent_debian_jdk21)\ndocker.io/hlemeur/agent:trixie-jdk25 (agent_debian_jdk25)\ndocker.io/hlemeur/agent:windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine3.23 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine3.23-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine3.23-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-alpine3.23-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk17 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk17-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk17-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk17-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk17-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk21 (inbound-agent_debian_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk21-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk21-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk21-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk21-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk25 (inbound-agent_debian_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk25-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk25-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk25-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-jdk25-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-rhel-ubi9 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk17 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk21 (inbound-agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-rhel-ubi9-jdk25 (inbound-agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:3355.v388858a_47b_33-3-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:alpine (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:alpine-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:alpine-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:alpine-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:alpine3.23 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:alpine3.23-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:alpine3.23-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:alpine3.23-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk17 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk21 (inbound-agent_debian_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk25 (inbound-agent_debian_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:latest (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-alpine (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-alpine-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-alpine-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:latest-alpine-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:latest-alpine3.23 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-alpine3.23-jdk17 (inbound-agent_alpine_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-alpine3.23-jdk21 (inbound-agent_alpine_jdk21)\ndocker.io/hlemeur/inbound-agent:latest-alpine3.23-jdk25 (inbound-agent_alpine_jdk25)\ndocker.io/hlemeur/inbound-agent:latest-jdk17 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-jdk21 (inbound-agent_debian_jdk21)\ndocker.io/hlemeur/inbound-agent:latest-jdk25 (inbound-agent_debian_jdk25)\ndocker.io/hlemeur/inbound-agent:latest-rhel-ubi9 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-rhel-ubi9-jdk17 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-rhel-ubi9-jdk21 (inbound-agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/inbound-agent:latest-rhel-ubi9-jdk25 (inbound-agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/inbound-agent:latest-trixie (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-trixie-jdk17 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:latest-trixie-jdk21 (inbound-agent_debian_jdk21)\ndocker.io/hlemeur/inbound-agent:latest-trixie-jdk25 (inbound-agent_debian_jdk25)\ndocker.io/hlemeur/inbound-agent:nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:rhel-ubi9 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:rhel-ubi9-jdk17 (inbound-agent_rhel_ubi9_jdk17)\ndocker.io/hlemeur/inbound-agent:rhel-ubi9-jdk21 (inbound-agent_rhel_ubi9_jdk21)\ndocker.io/hlemeur/inbound-agent:rhel-ubi9-jdk25 (inbound-agent_rhel_ubi9_jdk25)\ndocker.io/hlemeur/inbound-agent:trixie (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:trixie-jdk17 (inbound-agent_debian_jdk17)\ndocker.io/hlemeur/inbound-agent:trixie-jdk21 (inbound-agent_debian_jdk21)\ndocker.io/hlemeur/inbound-agent:trixie-jdk25 (inbound-agent_debian_jdk25)\ndocker.io/hlemeur/inbound-agent:windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk17)\n```\n\n\u003c/details\u003e\n\nYou can also call `make tags-windows` to show Windows image tags:\n```\ndocker.io/hlemeur/agent:jdk17-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:jdk17-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:jdk17-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/agent:jdk17-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/agent:jdk21-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:jdk21-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:jdk21-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/agent:jdk21-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/agent:jdk25-nanoserver-ltsc2019 (agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:jdk25-nanoserver-ltsc2022 (agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/agent:jdk25-windowsservercore-ltsc2019 (agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/agent:jdk25-windowsservercore-ltsc2022 (agent_windowsservercore-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk17-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk17-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk17)\ndocker.io/hlemeur/inbound-agent:jdk21-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk21-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk21)\ndocker.io/hlemeur/inbound-agent:jdk25-nanoserver-ltsc2019 (inbound-agent_nanoserver-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-nanoserver-ltsc2022 (inbound-agent_nanoserver-ltsc2022_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-windowsservercore-ltsc2019 (inbound-agent_windowsservercore-ltsc2019_jdk25)\ndocker.io/hlemeur/inbound-agent:jdk25-windowsservercore-ltsc2022 (inbound-agent_windowsservercore-ltsc2022_jdk25)\n```\n\n##### Target `bats`\n\nThis target is a dependency target. It will update the [`bats` submodule](https://github.com/bats-core/bats-core) and run the tests.\n\n```bash\nmake bats\nmake: 'bats' is up to date.\n```\n\nYou can set `BATS_FLAGS` to pass arguments to `bats`, ex:\n```bash\n$ mkdir -p tests/.bats/run-logs\n$ BATS_FLAGS=\"--trace --filter-status failed\" make test\n```\n\n##### Target `publish`\n\nThis target allows the publication of all images targeted by 'linux' to a registry.\n\n##### Target `docker-init`\n\nThis target is dedicated to Jenkins infrastructure for initializing docker and isn't required in other contexts.\n\n### Building and testing on Windows\n\n#### Building all images\n\nRun `.\\make.ps1` to launch the build of the images corresponding to the \"windows\" target of docker-bake.hcl.\n\nInternally, the first time you'll run this script and if there is no build-windows_\u003cAGENT_TYPE\u003e_\u003cWINDOWS_FLAVOR\u003e_\u003cWINDOWS_VERSION\u003e.yaml file in your repository, it will use a combination of `docker buildx bake` and `yq` to generate a  build-windows_\u003cAGENT_TYPE\u003e_\u003cWINDOWS_FLAVOR\u003e_\u003cWINDOWS_VERSION\u003e.yaml docker compose file containing all Windows image definitions from docker-bake.hcl. Then it will run `docker compose` on this file to build these images.\n\nYou can modify this docker compose file as you want, then rerun `.\\make.ps1`.\nIt won't regenerate the docker compose file from docker-bake.hcl unless you add the `-OverwriteDockerComposeFile` make.ps1 parameter:  `.\\make.ps1 -OverwriteDockerComposeFile`.\n\nNote: you can generate this docker compose file from docker-bake.hcl yourself with the following command (require `docker buildx` and `yq`):\n\n```bash\n# - Use docker buildx bake to output image definitions from the \"windows\" bake group\n# - Convert with yq to the format expected by docker compose\n# - Store the result in the docker compose file\n\n$ docker buildx bake --progress=quiet --file=docker-bake.hcl windows --print \\\n    | yq --prettyPrint '.target[] | del(.output) | {(. | key): {\"image\": .tags[0], \"build\": .}}' | yq '{\"services\": .}' \\\n    \u003e build-windows_mybuild.yaml\n```\n\nNote that you don't need make.ps1 to build (or to publish) your images from this docker compose file, you can use `docker compose --file=build-windows_mybuild.yaml build`.\n\n#### Testing all images\n\nRun `.\\make.ps1 test` if you also want to run the tests harness suit.\n\nRun `.\\make.ps1 test -TestsDebug 'debug'` to also get commands \u0026 stderr of tests, displayed on top of them.\nYou can set it to `'verbose'` to also get stdout of every test command.\n\nNote that instead of passing `-TestsDebug` parameter to make.ps1, you can set the  $env:TESTS_DEBUG environment variable to the desired value.\n\nAlso note that contrary to the Linux part, you have to build the images before testing them.\n\n#### Golden files\n\nA golden file (sometimes called a snapshot) is a file that contains the expected output of a program or function.\nTests compare the current output of the code against this \"golden\" reference to detect regressions or unintended changes.\nThey are treated as contract artifacts, not test fixtures.\n\nGolden files may be updated only when:\n- Output behavior is intentionally changed\n- A bug fix corrects previously incorrect output\n- A new test case is added\n\nGolden updates must be reviewed like code.\n\nIf your work implies golden file changes, those changes must be committed:\n- In the same commit as the behavior change\n- With a commit message explaining why output changed\n\nGolden updates must never be automatic.\n\n##### How to update a golden file\n- Reproduce output manually\n- Inspect output\n- Update the golden file explicitly\n- Run tests\n\nTo update a golden file, you can use the dedicated ./tests/update-golden-file.sh helper script.\n\nExample:\n```\n./tests/update-golden-file.sh expected_tags_linux make tags-linux\n```\n\nThen ensure corresponding tests are passing with:\n```\nbats ./tests/tags.bats\n```\n\n#### Dry run\n\nAdd the `-DryRun` parameter to print out any build, publish or tests commands instead of executing them: `.\\make.ps1 test -DryRun`\n\n#### Building and testing a specific image\n\nYou can build (and test) only one image type by setting `-ImageType` to a combination of Windows flavors (\"nanoserver\" \u0026 \"windowsservercore\") and Windows versions (\"ltsc2019\", \"ltsc2022\").\n\nEx: `.\\make.ps1 -ImageType 'nanoserver-ltsc2019'`\n\nYou can also build (and test) only one agent type by setting `-AgentType` to either \"agent\" or \"inbound-agent\".\n\nEx: `.\\make.ps1 -AgentType 'agent'`\n\nBoth parameters can be combined.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fdocker-agents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fdocker-agents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fdocker-agents/lists"}