-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit fc2a8b9
Showing
1 changed file
with
33 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Jenkins JNLP Agent Docker image for DianPlus.cn | ||
|
||
This is an image for [Jenkins](https://jenkins.io) agent (FKA "slave") using JNLP to establish connection. | ||
This agent is powered by the [Jenkins Remoting library](https://github.com/jenkinsci/remoting), which version is being taken from the base [Docker Agent](https://github.com/jenkinsci/docker-slave/) image, and customized by DianPlus.cn. | ||
|
||
## Running | ||
|
||
To run a Docker container | ||
|
||
docker run dianplus/jnlp-slave -url http://jenkins-server:port <secret> <agent name> | ||
|
||
To run a Docker container with [Work Directory](https://github.com/jenkinsci/remoting/blob/master/docs/workDir.md): | ||
|
||
docker run dianplus/jnlp-slave -url http://jenkins-server:port -workDir=/home/jenkins/agent <secret> <agent name> | ||
|
||
Optional environment variables: | ||
|
||
* `JENKINS_URL`: url for the Jenkins server, can be used as a replacement to `-url` option, or to set alternate jenkins URL | ||
* `JENKINS_TUNNEL`: (`HOST:PORT`) connect to this agent host and port instead of Jenkins server, assuming this one do route TCP traffic to Jenkins master. Useful when when Jenkins runs behind a load balancer, reverse proxy, etc. | ||
* `JENKINS_SECRET`: agent secret, if not set as an argument | ||
* `JENKINS_AGENT_NAME`: agent name, if not set as an argument | ||
* `JENKINS_AGENT_WORKDIR`: agent work directory, if not set by optional parameter `-workDir` | ||
|
||
## Configuration specifics | ||
|
||
### Enabled JNLP protocols | ||
|
||
By default, the [JNLP3-connect](https://github.com/jenkinsci/remoting/blob/master/docs/protocols.md#jnlp3-connect) is disabled due to the known stability and scalability issues. | ||
You can enable this protocol on your own risk using the | ||
`JNLP_PROTOCOL_OPTS=-Dorg.jenkinsci.remoting.engine.JnlpProtocol3.disabled=false` property (the protocol should be enabled on the master side as well). | ||
|
||
In Jenkins versions starting from `2.27` there is a [JNLP4-connect](https://github.com/jenkinsci/remoting/blob/master/docs/protocols.md#jnlp4-connect) protocol. | ||
If you use Jenkins `2.32.x LTS`, it is recommended to enable the protocol on your instance. |