Files
KNELProductionContainers/CloudronPackages/Jenkins/JenkinsBulldNotes.md

3.3 KiB
Raw Blame History

Jenkins for Cloudron - Build Notes

This document provides instructions for building, testing, and deploying the Jenkins package to Cloudron.

Prerequisites

  • Cloudron server (version 5.4.0 or higher)
  • Docker installed on your build machine
  • Cloudron CLI tool installed (npm install -g cloudron)

File Structure

jenkins-cloudron/
├── CloudronManifest.json     # Package definition
├── Dockerfile                # Docker image build instructions
├── start.sh                  # Initialization script
├── nginx.conf                # NGINX configuration
├── supervisor.conf           # Supervisor configuration for process management
├── logo.png                  # App icon (128x128 PNG)
├── casc_templates/           # Jenkins Configuration as Code templates
│   ├── default.yaml          # Default authentication config
│   ├── ldap.yaml             # LDAP authentication config
│   └── oauth.yaml            # OAuth/OIDC authentication config

Building the Package

  1. Create a directory for your package and place all files in the appropriate structure.

  2. Download a Jenkins logo (128x128 PNG) and save it as logo.png

  3. Build the Docker image:

    cloudron build
    
  4. Test the package locally:

    cloudron install —image cloudron/jenkins
    

Authentication Configuration

The package supports three authentication methods:

  1. Default (Local): Uses Jenkins built-in user database
  2. LDAP: Uses Cloudrons LDAP server for authentication
  3. OAuth/OIDC: Uses Cloudrons OAuth service for single sign-on

The authentication method is automatically configured based on the presence of environment variables provided by Cloudron.

Testing

After installation, test the following:

  1. Basic functionality:

    • Access Jenkins through your Cloudron dashboard
    • Verify the initial admin password works
    • Create a simple pipeline job
  2. Authentication:

    • Test LDAP integration by enabling the LDAP addon
    • Test OAuth/OIDC integration by enabling the OAuth addon
    • Verify user permissions are correctly applied
  3. Persistence:

    • Install plugins through the Jenkins UI
    • Restart the app to verify plugins persist
    • Check that job configurations are maintained

Troubleshooting

  • Jenkins doesnt start: Check logs using cloudron logs -f
  • Authentication issues: Verify the correct addons are enabled and configuration is applied
  • Permission problems: Check the ownership and permissions of files in /app/data

Updating Jenkins

When a new version of Jenkins is released, update the Dockerfile to pull the latest version and rebuild the package.

Additional Notes

  • The package uses Jenkins Configuration as Code (JCasC) to automate the setup process
  • Jenkins runs as the cloudron user for proper permissions
  • Files in /app/data/jenkins_home are persisted across restarts and updates
  • Initial admin password is set to adminpass for local authentication

Deployment to Cloudron App Store

If you wish to publish your app to the Cloudron App Store:

  1. Update the CloudronManifest.json with your details
  2. Test thoroughly on your own Cloudron instance
  3. Follow the Cloudron App Publishing guidelines

Happy CI/CD with Jenkins on Cloudron!