This guide walks you through cloning the repository, starting all six services with a single script, accessing every tool’s web UI, deploying a sample Java web application to WildFly, and creating your first Jenkins pipeline job. By the end you will have a fully operational CI/CD stack — Jenkins detecting code changes, SonarQube enforcing quality gates, Nexus storing versioned artifacts, and WildFly running your application.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.
All subsequent commands are run from the
CICD root directory. The directory contains docker-compose.yml, setup.sh, a sample Jenkinsfile, build-config.yml, and the jenkins/init.groovy.d/ auto-configuration scripts.docker compose down -v to remove any prior stateadd-user.sh admin admin --silent inside both the wildfly and jboss containersThe first run downloads all Docker images and may take several minutes depending on your internet connection. Subsequent runs are significantly faster because images are cached locally.
adminadminadminadminadminadminadminadminadminadminadminadminadminNexus generates a random password on first startup and writes it to a file inside its container. Retrieve it with:
The default credentials (
admin/admin) are intentional for local development only. Change all credentials before exposing any service to a network.The repository includes a sample Jakarta EE web application under
examples/webapp-sample/. Build it with Maven and copy the resulting WAR directly into WildFly’s hot-deployment directory:cd examples/webapp-sample
mvn clean package
docker cp target/*.war wildfly:/opt/jboss/wildfly/standalone/deployments/
WildFly monitors the
standalone/deployments/ directory and deploys the WAR automatically. Check the WildFly admin console at http://localhost:9990 to confirm the deployment status, or tail the container log:admin / adminmy-java-pipeline) and select Pipeline, then click OKJenkinsfileJenkins will checkout your code, run
mvn clean install, execute tests, submit a SonarQube analysis, wait for the quality gate, and deploy artifacts to Nexus — all driven by the pipeline stages defined in your Jenkinsfile.Troubleshooting
Services won't start or keep restarting
Services won't start or keep restarting
Check whether Docker has enough resources to run all six containers:Look for containers with very high memory usage or that are being killed. The full stack requires at least 6 GB of available RAM. You can also inspect individual service logs:If you need to reset everything to a clean state:
Jenkins is not accessible at localhost:8080
Jenkins is not accessible at localhost:8080
Jenkins takes 2–3 minutes to fully boot after the container starts — it must complete plugin loading and run the five Groovy init scripts before the web UI becomes responsive. Wait for the following line to appear in the log before trying the browser:If Jenkins never becomes accessible, check that port 8080 is not already bound on your host:
SonarQube shows a database connection error on startup
SonarQube shows a database connection error on startup
SonarQube depends on PostgreSQL being fully ready before it can connect. The
depends_on directive in docker-compose.yml starts PostgreSQL first, but PostgreSQL itself needs a few seconds to accept connections after the container is running. SonarQube will retry automatically. Wait 2–3 minutes and refresh the browser. You can monitor progress with:Nexus is slow to start or the UI is unresponsive
Nexus is slow to start or the UI is unresponsive
Nexus Repository Manager is memory-intensive. The
docker-compose.yml starts it with -Xms512m -Xmx512m, but Nexus also allocates significant direct memory. Ensure your Docker host has at least 4 GB of RAM available for Nexus alone. Nexus can take 3–5 minutes to become fully responsive on first start while it initializes its internal Orient DB and blob stores. Check the log for startup progress:Next Steps
With your environment running and your first pipeline green, explore the rest of the documentation to configure advanced pipeline behaviour:- Build Configuration Reference — Learn how to customize
build-config.ymlto control Java version, Maven version, test execution, SonarQube settings, and Nexus deployment targets. - Jenkinsfile Pipeline Guide — Deep-dive into the pipeline stages, multi-environment deployments, ZIP-based builds, and how to add quality gates and notifications.
