This repository includes the files necessary for transitioning from docker to docker compose in our Jenkins tutorials and installation guides.
GitHub Codespaces provides a cloud-based development environment with Docker pre-installed and configured.
- Click the button below to open this repository in GitHub Codespaces:
- Wait for the Codespace to build (first time: ~2-3 minutes, subsequent starts: ~30 seconds)
- Once ready, the setup script will automatically install required tools
- Follow the instructions in the terminal to start a tutorial
- Docker and Docker Compose pre-installed
yqYAML processor for configuration- GitHub CLI (
gh) for repository operations - Automatic port forwarding for Jenkins (8080) and applications (3000, 5000)
- Jenkins URL automatically configured for Codespaces environment
- 60 hours/month for free accounts (sufficient for all tutorials)
- 120 hours/month with GitHub Student Developer Pack
GitHub Codespaces is a cloud-based development environment integrated with GitHub. It provides instant, configured development environments with Docker pre-installed, making it perfect for these Jenkins tutorials.
Benefits:
- No local installation required
- Consistent environment for all users
- Free tier: 60 hours/month
- Accessible from any device with a browser
- Automatic backups via GitHub
-
Use
docker compose upto run examples from this project. Currently, we have four working examples:- maven
- node
- python
- multibranch pipeline
-
To run different examples with
docker compose up -d, append the example name to the command, like so:maven=>docker compose --profile maven up -dpython=>docker compose --profile python up -dnode=>docker compose --profile node up -dmulti=>docker compose --profile multi up -d
-
If no tutorial-related argument is used (i.e.,
docker compose --profile default up -d), the command runs the latest default example. -
If no argument regarding profiles is used at all (i.e.,
docker compose up -d), then you will have a Jenkins controller desperately waiting for a non existent agent to connect. -
If you prefer to build images yourself, append
-f build-docker-compose.yamlafterdocker compose. For example, to build thenodetutorial Jenkins instance, use:docker compose -f build-docker-compose.yaml --profile node up -d.
- Check the status of the container with the
docker psordocker compose pscommands. - Access your running Jenkins instance at http://127.0.0.1:8080.
- On GitHub Codespaces, port 8080 is automatically forwarded and you'll see a notification to open the forwarded port in your browser.
- To stop and remove running containers, use
docker compose --profile <tutorial-name> down. - If you encounter a
Resource is still in usewarning, use the--remove-orphansoption which would givedocker compose --profile <tutorial-name> down --remove-orphans. - To remove the created volumes (should you need to restart from scratch), add the
-voption which would givedocker compose --profile <tutorial-name> down -v.
This repository uses Jenkins Configuration as Code (JCASC) to provide pre-configured Jenkins environments. The configuration includes:
- Pre-configured admin credentials (admin/admin)
- Automatic agent registration via SSH
- Suppressed reverse proxy warnings for cloud development environments
For more detailed information about the configuration, please refer to dockerfiles/jenkins.yaml.
If you encounter any issues while running the examples, please open an issue in this repository. We will be happy to help you resolve the issue. Please let us know the following details when you open an issue:
- The command you used to run the example.
- The error message you received.
- The steps you took before encountering the issue.
- The version of docker you're using via the
docker versioncommand. - The version of docker compose you're using via the
docker compose versioncommand.
The tutorials have been tested with:
- Docker version
28.0.4 - Docker Compose version
2.38.2