Title: DockerClient.inspectContainerCmd() fails when Capabilities are not in uppercase · Issue #2365 · docker-java/docker-java · GitHub
Open Graph Title: DockerClient.inspectContainerCmd() fails when Capabilities are not in uppercase · Issue #2365 · docker-java/docker-java
X Title: DockerClient.inspectContainerCmd() fails when Capabilities are not in uppercase · Issue #2365 · docker-java/docker-java
Description: Version Information com.github.docker-java:docker-java-core:3.4.0 com.github.docker-java:docker-java-transport-httpclient5:3.4.0 Docker version: Client: Version: 27.2.0 API version: 1.47 Go version: go1.21.13 Git commit: 3ab4256 Built: T...
Open Graph Description: Version Information com.github.docker-java:docker-java-core:3.4.0 com.github.docker-java:docker-java-transport-httpclient5:3.4.0 Docker version: Client: Version: 27.2.0 API version: 1.47 Go version...
X Description: Version Information com.github.docker-java:docker-java-core:3.4.0 com.github.docker-java:docker-java-transport-httpclient5:3.4.0 Docker version: Client: Version: 27.2.0 API version: 1.47 Go version...
Opengraph URL: https://github.com/docker-java/docker-java/issues/2365
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"DockerClient.inspectContainerCmd() fails when Capabilities are not in uppercase","articleBody":"### Version Information\r\ncom.github.docker-java:docker-java-core:3.4.0\r\ncom.github.docker-java:docker-java-transport-httpclient5:3.4.0\r\n\r\nDocker version:\r\n```\r\nClient:\r\n Version: 27.2.0\r\n API version: 1.47\r\n Go version: go1.21.13\r\n Git commit: 3ab4256\r\n Built: Tue Aug 27 14:14:45 2024\r\n OS/Arch: darwin/arm64\r\n Context: desktop-linux\r\n\r\nServer: Docker Desktop 4.34.0 (165256)\r\n Engine:\r\n Version: 27.2.0\r\n API version: 1.47 (minimum version 1.24)\r\n Go version: go1.21.13\r\n Git commit: 3ab5c7d\r\n Built: Tue Aug 27 14:15:41 2024\r\n OS/Arch: linux/arm64\r\n Experimental: false\r\n containerd:\r\n Version: 1.7.20\r\n GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353\r\n runc:\r\n Version: 1.1.13\r\n GitCommit: v1.1.13-0-g58aa920\r\n docker-init:\r\n Version: 0.19.0\r\n GitCommit: de40ad0\r\n```\r\n\r\n### Steps to reproduce\r\n1. Create a container with the following command:\r\n ```\r\n docker run --rm --cap-add net_admin -d nginx\r\n ```\r\n2. Compile and run the following java code:\r\n ```\r\n import com.github.dockerjava.api.DockerClient;\r\n import com.github.dockerjava.core.*;\r\n import com.github.dockerjava.httpclient5.ApacheDockerHttpClient;\r\n import com.github.dockerjava.transport.DockerHttpClient;\r\n \r\n import java.net.URI;\r\n \r\n public class DockerTest {\r\n public static void main(String[] args) {\r\n DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder()\r\n .withDockerHost(\"unix:///var/run/docker.sock\")\r\n .withDockerTlsVerify(false)\r\n .withApiVersion(RemoteApiVersion.VERSION_1_42)\r\n .build();\r\n \r\n DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder()\r\n .dockerHost(URI.create(\"unix:///var/run/docker.sock\"))\r\n .build();\r\n \r\n DockerClient client = DockerClientImpl.getInstance(config, httpClient);\r\n \r\n client.inspectContainerCmd(\"\u003ccontainer_id\u003e\").exec(); // replace this with actual container id\r\n }\r\n }\r\n ```\r\n3. The following exception is thrown:\r\n ```\r\n Exception in thread \"main\" java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.github.dockerjava.api.model.Capability` from String \"net_admin\": not one of the values accepted for Enum class: [ALL, SYS_BOOT, DAC_OVERRIDE, NET_RAW, BLOCK_SUSPEND, FOWNER, IPC_LOCK, IPC_OWNER, SYS_PACCT, NET_BIND_SERVICE, WAKE_ALARM, FSETID, DAC_READ_SEARCH, SYS_CHROOT, AUDIT_READ, SYS_RAWIO, SYS_ADMIN, KILL, MAC_ADMIN, SYS_RESOURCE, CHOWN, PERFMON, SETPCAP, SYS_PTRACE, NET_ADMIN, SETFCAP, SYS_NICE, LINUX_IMMUTABLE, BPF, AUDIT_CONTROL, LEASE, AUDIT_WRITE, SYS_MODULE, MKNOD, SYSLOG, MAC_OVERRIDE, SYS_TIME, SETGID, SETUID, CHECKPOINT_RESTORE, SYS_TTY_CONFIG, NET_BROADCAST]\r\n at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: com.github.dockerjava.api.command.InspectContainerResponse[\"HostConfig\"]-\u003ecom.github.dockerjava.api.model.HostConfig[\"CapAdd\"]-\u003ejava.lang.Object[][0])\r\n at com.github.dockerjava.core.DefaultInvocationBuilder.get(DefaultInvocationBuilder.java:77)\r\n at com.github.dockerjava.core.exec.InspectContainerCmdExec.execute(InspectContainerCmdExec.java:31)\r\n at com.github.dockerjava.core.exec.InspectContainerCmdExec.execute(InspectContainerCmdExec.java:13)\r\n at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)\r\n at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)\r\n at com.github.dockerjava.core.command.InspectContainerCmdImpl.exec(InspectContainerCmdImpl.java:51)\r\n at dockerbug.DockerTest.main(DockerTest.java:24)\r\n\r\n ```\r\n5. Start another container with the following:\r\n ```\r\n docker run --rm --cap-add NET_ADMIN -d nginx\r\n ```\r\n7. Run the java program again with the new id from step 5, and now it runs without error.\r\n8. Same issue is seen using `--cap-drop net_admin`","author":{"url":"https://github.com/defung","@type":"Person","name":"defung"},"datePublished":"2024-11-01T20:25:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/2365/docker-java/issues/2365"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:4b8baeaa-40e6-1865-b92b-0a307c6b14a1 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C37E:361663:F952DA:1554AD5:697299B6 |
| html-safe-nonce | 6d2d1c9b06280d0b8bc95affc920ad965c49165f00fa3d7de35b70263839cf62 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMzdFOjM2MTY2MzpGOTUyREE6MTU1NEFENTo2OTcyOTlCNiIsInZpc2l0b3JfaWQiOiI1MTY4NjE1MTU4MzU1NDYwMzgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 539a874cbf891d04e3bdf275649993d6f834bf55abb1b30536d0e05cfa8cbd1b |
| hovercard-subject-tag | issue:2629813399 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/docker-java/docker-java/2365/issue_layout |
| twitter:image | https://opengraph.githubassets.com/66c784ebf9c7fc9448c5073ee3efc63ef20624f82474fbbdd51fa0a69ca71da3/docker-java/docker-java/issues/2365 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/66c784ebf9c7fc9448c5073ee3efc63ef20624f82474fbbdd51fa0a69ca71da3/docker-java/docker-java/issues/2365 |
| og:image:alt | Version Information com.github.docker-java:docker-java-core:3.4.0 com.github.docker-java:docker-java-transport-httpclient5:3.4.0 Docker version: Client: Version: 27.2.0 API version: 1.47 Go version... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | defung |
| hostname | github.com |
| expected-hostname | github.com |
| None | 72bb1c46bb1ebdc0dc83a0a57b64c3b4d668c125d1125d94898213a4c9db8da2 |
| turbo-cache-control | no-preview |
| go-import | github.com/docker-java/docker-java git https://github.com/docker-java/docker-java.git |
| octolytics-dimension-user_id | 7772003 |
| octolytics-dimension-user_login | docker-java |
| octolytics-dimension-repository_id | 20415251 |
| octolytics-dimension-repository_nwo | docker-java/docker-java |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 20415251 |
| octolytics-dimension-repository_network_root_nwo | docker-java/docker-java |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7b2326416cb9f2fa4ab7b6ede33ad46d0dd431a1 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width