Giter Club home page Giter Club logo

Comments (17)

oleg-nenashev avatar oleg-nenashev commented on August 13, 2024

I assume it's for JAR cache, which is being stored in home dir now.
Should be fixed/broken by https://issues.jenkins-ci.org/browse/JENKINS-18578 in remoting 3

from docker-agent.

staffan-einarsson avatar staffan-einarsson commented on August 13, 2024

Thanks. Wouldn't it be enough then to mark /home/jenkins/.jenkins as a volume?

from docker-agent.

oleg-nenashev avatar oleg-nenashev commented on August 13, 2024

@carlossg WDYT?

from docker-agent.

carlossg avatar carlossg commented on August 13, 2024

@oleg-nenashev is the jenkins slave copying data only to ~/.jenkins ? then it makes sense to use that as a volume, or nothing at all

from docker-agent.

oleg-nenashev avatar oleg-nenashev commented on August 13, 2024

@carlossg Jenkins slave itself should not use other directories in home dir. I'm not sure about Jenkins core's logic and plugins hooking on it

from docker-agent.

staffan-einarsson avatar staffan-einarsson commented on August 13, 2024

Great! Thanks @carlossg

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

@staffan-einarsson any reason you don't use jenkins credentials support to manage ssh keys ? Should not need to customize slave's $HOME.

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

@staffan-einarsson I'd like to revert this. Not making HOME a volume means workspace isn't created on a volume, .m2, .npm and others won't get cached, etc.

from docker-agent.

carlossg avatar carlossg commented on August 13, 2024

I think you can still put it in a volume, it's just the user responsibility to do it

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

You indeed can run the image and force /home/jenkins to be a volume, but as a result will have two volumes, one for /home/jenkins and one for /home/jenkins/.jenkins, which doesn't make much sense imo, and also make it harder to persist agent environment. Other option is to just not declare a volume

from docker-agent.

carlossg avatar carlossg commented on August 13, 2024

I mean if we remove the volume definition and make it user's responsibility to deal with volumes

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

@carlossg yes indeed, image doesn't need to declare a volume, end-user can just run with -v slaveroot:/home/jenkins. Initial content from image will then be copied into this volume.
This would just require end-user to know this path should be a volume, so have to make it clear in documentation.

from docker-agent.

staffan-einarsson avatar staffan-einarsson commented on August 13, 2024

Sorry for late follow up. @ndeloof For my specific case it I was using a plugin that did integrate with Jenkins credentials and having user SSH keys was a valid work-around. More generally, a lot of environment config goes in the home dir so it is not unreasonable to want to be able to set it up when building the image.

Yes, I agree. It would be better to leave the decision of whether to make it a volume to the user. It sounds like persisting caches is the main argument, as an optimization. I could equally see the use case that you want to wipe the caches between starts to make sure you have a clean starting point.

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

@staffan-einarsson the main argument is not about persisting jar cache - this one could not be persisted. The main argument is about persisting slave root to persist workspaces and tool installations, so you can retrieve them on next build.

Environment configuration should not live in slave $HOME but rely on Jenkins mechanism to inject configuration.

from docker-agent.

jniemin avatar jniemin commented on August 13, 2024

@ndeloof, @carlossg Seems that latest version of image was not created based on jenkinsci/slave that had this change. I did run docker inspect for both latest from repo and results were following

jenkinsci/slave:latest
"Created": "2016-09-14T09:31:24.487360509Z"
"Volumes": { "/home/jenkins/.jenkins": {} }

jenkinsci/jnlp-slave:latest
"Created": "2016-09-14T09:02:01.065000398Z"
"Volumes": { "/home/jenkins": {} }

So if you use jnlp-slave as base image you will still have volume pointin to /home/jenkins/ not /home/jenkins/.jenkins

from docker-agent.

dcw329 avatar dcw329 commented on August 13, 2024

+1. Having this issue. Still need this fixed. for now i am creating my own jenkins slaves FROM openjdk:8-jdk-alpine. Id really like to be able to go back to the community jenkins

from docker-agent.

ndeloof avatar ndeloof commented on August 13, 2024

This introduces a regression in docker-slaves-plugin as the workspace is not available from other containers in the build environment

from docker-agent.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.