jenkinsci / docker-plugin

Jenkins cloud plugin that uses Docker
https://plugins.jenkins.io/docker-plugin/
MIT License
486 stars 322 forks source link

can not get container id if the Jenkins is running in a podman #1039

Closed middlesouthlake closed 6 months ago

middlesouthlake commented 6 months ago

Jenkins and plugins versions report

REHL8, podman ```text Jenkins running in podman on REHL8, docker installed in Jenkins image ``` when try to use docker.image(), it will find the container id first. However, the current method getContainerIdIfContainerized() can not parse the container id because the /proc/1/moutninfo is different. Please refer to the following. # cat /proc/1/mountinfo | grep /hostname 1339 1333 0:48 /containers/overlay-containers/4c4d5c5475f78f2b8a98e2894adcc3152ac587ac3c406a5c4eb74cc3f129c03c/userdata/hostname /etc/hostname rw,nosuid,nodev,relatime - tmpfs tmpfs rw,seclabel,size=1609596k,mode=700,uid=1001,gid=1001

What Operating System are you using (both controller, and any agents involved in the problem)?

REHL8

Reproduction steps

  1. run a docker container in a podman container, on REHL8.
  2. go to the docker conainer
  3. run command: cat /proc/1/mountinfo | grep /hostname
  4. check the string which contains the contianer id.

Expected Results

the current code uses regexp "/containers/([a-z0-9]{64})/hostname" to parse the container id, so it expects /containers/[id]/hostname.

Actual Results

1339 1333 0:48 /containers/overlay-containers/4c4d5c5475f78f2b8a98e2894adcc3152ac587ac3c406a5c4eb74cc3f129c03c/userdata/hostname /etc/hostname rw,nosuid,nodev,relatime - tmpfs tmpfs rw,seclabel,size=1609596k,mode=700,uid=1001,gid=1001

Anything else?

No response

Are you interested in contributing a fix?

No response

MarkEWaite commented 6 months ago

The docker plugin is not tested with podman or with other container runtimes. As far as I know, it is only tested with docker.

middlesouthlake commented 6 months ago

Thanks Mark. Is there a plan to support podman?

MarkEWaite commented 6 months ago

Thanks Mark. Is there a plan to support podman?

I've not seen anyone offer any pull request that would add support for podman. You're encouraged to submit a pull request, since you are interested in the capability and it would benefit you.

middlesouthlake commented 6 months ago

sorry, just realized this is a bug for docker-pipeline plugin. closing it.