-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins Core 2.73
When running a build inside a docker container, some commands don't work because they rely on the user being properly set. For example, ssh doesn't work with the following error:
No user exists for uid 150.
I think this could be solved by append to passwd on container startup, something like this (untested, for proof of concept):
if [ "$(id -u)" != "0" ]; then
echo "jenkins:x:$(id -u):$(id -g):Jenkins:${HOME}:/sbin/nologin" >> /etc/passwd
fi
- relates to
-
JENKINS-31944 Docker commandline passed wrong user id when executing.
-
- Closed
-
-
JENKINS-49416 Agent Dockerfile Overrides Entrypoint and User
-
- Open
-
[JENKINS-47026] User not completely set in docker containers
Link |
New:
This issue relates to |
Attachment | New: build_log.txt [ 41383 ] |
Attachment | New: Jenkinsfile [ 41384 ] |
Component/s | New: declarative-pipeline-when-conditions-plugin [ 23168 ] | |
Component/s | Original: docker [ 20834 ] |
Component/s | New: docker-workflow-plugin [ 20625 ] | |
Component/s | Original: declarative-pipeline-when-conditions-plugin [ 23168 ] |
Link | New: This issue relates to JENKINS-49416 [ JENKINS-49416 ] |
Comment |
[ My above workaround can further be improved by adding "-v jenkins_etc:/etc" to the Jenkins docker run command line. That way /etc/passwd will be available to all agent containers. And if you do that, you don't need the {{environment{}}} variables I have above. Unfortunately, you'll still need to override $HOME. ] |
Assignee | Original: Nicolas De Loof [ ndeloof ] |