This page walks you through everything required to get the Jenkins CI/CD stack running locally from scratch — from meeting system requirements and cloning the repository, to running the automated setup script and verifying all five services are healthy. By the end you will have Jenkins, SonarQube, Nexus, WildFly, and JBoss all running in Docker containers on a shared internal network, ready for pipeline use.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/infra-neo/CICD/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before running the setup script, confirm your environment meets the following requirements:- Operating System: Ubuntu Linux or a compatible distribution
- Docker: version 20.10 or later (
docker --version) - Docker Compose: version 1.29 or later (
docker compose versionordocker-compose --version) - RAM: at least 6 GB of available system memory (all five services run concurrently)
- Disk space: at least 15 GB free (Docker images, volumes, and build artifacts)
Installation
Run the automated setup script
Execute The script performs the following actions in order:
setup.sh to provision all services:- Checks dependencies — verifies that
dockeranddocker compose(ordocker-compose) are installed and exits with an error if either is missing. - Stops existing containers — runs
docker compose down -vto remove any previously running containers and their volumes, ensuring a clean slate. - Starts all services — runs
docker compose up -dto pull images (if not already cached) and start Jenkins, PostgreSQL, SonarQube, Nexus, WildFly, and JBoss in detached mode. - Polls service health — loops every 5 seconds with
curlchecks against each service’s HTTP port until Jenkins (:8080), SonarQube (:9000), Nexus (:8081), WildFly (:8090), and JBoss (:8070) all respond. - Configures application server admin users — runs
add-user.sh admin admin --silentinside both thewildflyandjbosscontainers to register the management console admin account. - Waits 30 seconds — pauses for full initialization of plugins, database migrations, and other background bootstrap tasks before printing the summary.
The first run may take 5–10 minutes depending on internet speed and host
resources, as Docker must pull all service images.
Validate the environment
After setup completes, run the validation script to confirm every component is healthy:The script executes approximately 20 automated checks across seven categories:
A green
| Category | What is checked |
|---|---|
| Container status | Jenkins, SonarQube, Nexus, PostgreSQL containers are running |
| Network connectivity | Jenkins container can reach SonarQube and Nexus by hostname |
| HTTP endpoints | Jenkins (:8080), SonarQube (:9000), and Nexus (:8081) respond to curl |
| Service health | Jenkins version, PostgreSQL connection, SonarQube API status (UP) |
| Docker volumes | cicd_jenkins_home, cicd_nexus_data, cicd_sonarqube_data exist |
| Configuration files | jenkins/init.groovy.d/ scripts, docker-compose.yml, build-config.yml, Jenkinsfile are present and valid |
| Example project | Maven example project builds successfully (skipped if Maven is not installed locally) |
✓ PASS line is printed for each successful check. The script exits with code 1 if any check fails and prints remediation hints.Service URLs
Once setup completes successfully, all five services are accessible from the host:| Service | URL | Username | Password |
|---|---|---|---|
| Jenkins | http://localhost:8080 | admin | admin |
| SonarQube | http://localhost:9000 | admin | admin |
| Nexus | http://localhost:8081 | admin | (generated — see step 4) |
| WildFly (HTTP) | http://localhost:8090 | admin | admin |
| WildFly (Admin) | http://localhost:9990 | admin | admin |
| JBoss (HTTP) | http://localhost:8070 | admin | admin |
| JBoss (Admin) | http://localhost:9970 | admin | admin |
