Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9749636
D8057.id29072.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
D8057.id29072.diff
View Options
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -16,3 +16,24 @@
```
The output displays the jenkins configuration files as they will be applied on the server.
+
+# Run on docker
+
+TODO improve this part
+
+- launch jenkins
+```
+docker-compose build
+docker-compose up
+```
+- get the admin password in the logs
+- connect to localhost:8080
+- change the admin password to `admin123`
+- create a jenkins directory `jenkins-tools`
+- create a new free-style job named `job-builder` inside the `jenkins-tools` pointing this git repository
+ - configure the right branch (ci here)
+ - Add a step `Execute a script shell` with this content
+```
+tox update -- --delete-old
+```
+- save and launch \o/
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,20 @@
+version: '3'
+
+volumes:
+ jenkins_data:
+
+services:
+ jenkins:
+ image: swh-jenkins:latest
+ build:
+ context: docker
+ args:
+ DOCKER_GROUP: 998
+ volumes:
+ - jenkins_data:/var/jenkins_home
+ - /var/run/docker.sock:/var/run/docker.sock
+ environment:
+ - PLUGINS_FORCE_UPGRADE=true
+ ports:
+ - 8080:8080
+ entrypoint: /docker/entrypoint.sh
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,28 @@
+FROM jenkins/jenkins:lts-jdk11
+
+USER root
+
+RUN apt-get update && apt-get -y install python3-pip && \
+ pip install tox
+
+# Adapt this group if the docker gid is not 999 on your local environment
+ARG DOCKER_GROUP 998
+
+# Install docker tools
+RUN addgroup --gid ${DOCKER_GROUP} docker && \
+ mkdir -p /etc/apt/keyrings /etc/apt/sources.list.d && \
+ apt-get update && apt-get -y install ca-certificates curl gnupg lsb-release && \
+ curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list && \
+ apt-get update && \
+ apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
+
+COPY --chown=jenkins:jenkins . /docker/
+COPY jenkins_jobs.ini /etc/jenkins_jobs/jenkins_jobs.ini
+
+RUN adduser jenkins docker && \
+ chmod a+x /docker/entrypoint.sh
+
+USER jenkins
+
+ENTRYPOINT /docker/entrypoint.sh
diff --git a/docker/Readme.me b/docker/Readme.me
new file mode 100644
--- /dev/null
+++ b/docker/Readme.me
@@ -0,0 +1,6 @@
+# How to generate the plugin list
+
+```
+JENKINS_HOST=username:password@myhost.com:port
+curl -sSL "https://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'
+```
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
new file mode 100644
--- /dev/null
+++ b/docker/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -x
+
+PLUGINS_FILE=/docker/plugins.txt
+
+if [ -f "$PLUGINS_FILE" ]; then
+ echo "Installing plugins from $PLUGINS_FILE ..."
+ jenkins-plugin-cli -f $PLUGINS_FILE
+fi
+
+/usr/bin/tini -- /usr/local/bin/jenkins.sh
diff --git a/docker/jenkins_jobs.ini b/docker/jenkins_jobs.ini
new file mode 100644
--- /dev/null
+++ b/docker/jenkins_jobs.ini
@@ -0,0 +1,14 @@
+[job_builder]
+ignore_cache=True
+keep_descriptions=False
+#include_path=.:scripts:~/git/
+#exclude=.*:manual:./development
+recursive=False
+allow_duplicates=False
+update=all
+
+[jenkins]
+user=admin
+password=admin123
+url=http://localhost:8080
+query_plugins_info=False
diff --git a/docker/plugins.txt b/docker/plugins.txt
new file mode 100644
--- /dev/null
+++ b/docker/plugins.txt
@@ -0,0 +1,165 @@
+pam-auth:1.8
+build-history-metrics-plugin:97.vdcf3aa48af8d
+resource-disposer:0.19
+pipeline-graph-analysis:195.v5812d95a_a_2f9
+token-macro:293.v283932a_0a_b_49
+publish-over-ssh:1.24
+mashup-portlets-plugin:1.1.2
+plain-credentials:1.8
+sshd:3.242.va_db_9da_b_26a_c3
+external-monitor-job:191.v363d0d1efdf8
+javax-mail-api:1.6.2-6
+mailer:414.vcc4c33714601
+sse-gateway:1.25
+pipeline-utility-steps:2.13.0
+jquery:1.12.4-1
+jnr-posix-api:3.1.7-3
+docker-java-api:3.2.13-37.vf3411c9828b9
+workflow-step-api:625.vd896b_f445a_f8
+email-ext:2.89
+pipeline-model-extensions:2.2097.v33db_b_de764b_e
+maven-plugin:3.19
+jaxb:2.3.6-1
+workflow-cps:2725.v7b_c717eb_12ce
+subversion:2.15.5
+project-build-times:1.2.1
+extended-choice-parameter:346.vd87693c5a_86c
+blueocean-pipeline-editor:1.25.5
+shiningpanda:0.24
+blueocean-config:1.25.5
+bouncycastle-api:2.26
+jira:3.7.1
+font-awesome-api:6.1.1-1
+htmlpublisher:1.30
+snakeyaml-api:1.30.1
+github-branch-source:1637.vd833b_7ca_7654
+checks-api:1.7.4
+dtkit-api:3.0.1
+pubsub-light:1.16
+lockable-resources:2.15
+workflow-durable-task-step:1146.v1a_d2e603f929
+apache-httpcomponents-client-4-api:4.5.13-1.0
+blueocean-bitbucket-pipeline:1.25.5
+jenkins-design-language:1.25.5
+project-stats-plugin:0.4
+favorite:2.4.1
+caffeine-api:2.9.3-65.v6a_47d0f4d1fe
+display-url-api:2.3.6
+docker-plugin:1.2.9
+blueocean-commons:1.25.5
+forensics-api:1.15.1
+popper-api:1.16.1-3
+blueocean-git-pipeline:1.25.5
+workflow-aggregator:581.v0c46fa_697ffd
+pipeline-stage-tags-metadata:2.2097.v33db_b_de764b_e
+blueocean-rest:1.25.5
+github:1.34.3
+prometheus:2.0.11
+plugin-util-api:2.17.0
+ssh-slaves:1.821.vd834f8a_c390e
+script-security:1175.v4b_d517d6db_f0
+trilead-api:1.57.v6e90e07157e1
+ssh-credentials:277.v95c2fec1c047
+phabricator-plugin:2.1.5
+ldap:2.10
+build-token-root:1.9
+ansicolor:1.0.1
+workflow-job:1186.v8def1a_5f3944
+mercurial:2.16.2
+credentials:1129.vef26f5df883c
+variant:1.4
+blueocean-autofavorite:1.2.5
+blueocean-events:1.25.5
+extended-read-permission:3.2
+matrix-project:771.v574584b_39e60
+blueocean-display-url:2.4.1
+okhttp-api:4.9.3-105.vb96869f8ac3a
+pipeline-build-step:2.18
+pipeline-milestone-step:101.vd572fef9d926
+antisamy-markup-formatter:2.7
+bootstrap4-api:4.6.0-5
+analysis-model-api:10.12.0
+pipeline-model-definition:2.2097.v33db_b_de764b_e
+cvs:2.19.1
+workflow-multibranch:716.vc692a_e52371b_
+bootstrap5-api:5.1.3-7
+github-api:1.303-400.v35c2d8258028
+cloudbees-disk-usage-simple:0.10
+pipeline-stage-step:293.v200037eefcd5
+blueocean-jwt:1.25.5
+docker-workflow:1.28
+ant:475.vf34069fef73c
+pipeline-stage-view:2.24
+ace-editor:1.1
+workflow-scm-step:400.v6b_89a_1317c9a_
+momentjs:1.1.1
+rebuild:1.34
+warnings-ng:9.13.0
+prism-api:1.28.0-2
+jquery3-api:3.6.0-4
+jquery-detached:1.2.1
+popper2-api:2.11.5-2
+workflow-support:820.vd1a_6cc65ef33
+workflow-basic-steps:948.v2c72a_091b_b_68
+blueocean-dashboard:1.25.5
+pipeline-model-api:2.2097.v33db_b_de764b_e
+plot:2.1.10
+blueocean:1.25.5
+cloudbees-folder:6.729.v2b_9d1a_74d673
+blueocean-pipeline-scm-api:1.25.5
+timestamper:1.18
+blueocean-rest-impl:1.25.5
+credentials-binding:523.vd859a_4b_122e6
+copyartifact:1.46.4
+blueocean-core-js:1.25.5
+pipeline-input-step:449.v77f0e8b_845c4
+git-server:1.11
+javax-activation-api:1.2.0-3
+blueocean-personalization:1.25.5
+last-changes:2.7.11
+pipeline-rest-api:2.24
+jackson2-api:2.13.3-285.vc03c0256d517
+blueocean-web:1.25.5
+junit:1119.1121.vc43d0fc45561
+git:4.11.3
+metrics:4.1.6.2
+mina-sshd-api-core:2.8.0-21.v493b_6b_db_22c6
+matrix-auth:3.1.3
+mina-sshd-api-common:2.8.0-21.v493b_6b_db_22c6
+ssh-agent:295.v9ca_a_1c7cc3a_a_
+pipeline-groovy-lib:593.va_a_fc25d520e9
+handlebars:3.0.8
+blueocean-github-pipeline:1.25.5
+compress-buildlog:1.2
+echarts-api:5.3.3-1
+cloudbees-bitbucket-branch-source:773.v4b_9b_005b_562b_
+docker-commons:1.19
+dashboard-view:2.432.va_712ce35862d
+cobertura:1.17
+command-launcher:84.v4a_97f2027398
+authentication-tokens:1.4
+branch-api:2.1046.v0ca_37783ecc5
+build-timeout:1.21
+git-client:3.11.0
+javadoc:217.v905b_86277a_2a_
+workflow-api:1164.v760c223ddb_32
+data-tables-api:1.12.1-1
+mapdb-api:1.0.9.0
+jsch:0.1.55.2
+blueocean-jira:1.25.5
+workflow-cps-global-lib:588.v576c103a_ff86
+jjwt-api:0.11.5-77.v646c772fddb_0
+publish-over:0.22
+xunit:3.1.0
+python:1.3
+windows-slaves:1.8.1
+jdk-tool:1.5
+git-parameter:0.9.17
+code-coverage-api:2.0.4
+blueocean-pipeline-api-impl:1.25.5
+ws-cleanup:0.42
+handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
+durable-task:496.va67c6f9eefa7
+blueocean-i18n:1.25.5
+scm-api:608.vfa_f971c5a_a_e9
+structs:318.va_f3ccb_729b_71
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Aug 24, 6:04 PM (1 d, 14 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224441
Attached To
D8057: Add a docker environment to test the job-builder inside jenkins
Event Timeline
Log In to Comment