Public | Automated Build

Last pushed: 12 days ago
Short Description
Remote agent for Atlassian Bamboo, customized for building Java, Gradle and SWT-based applications.
Full Description

This is Docker image of a remote agent for Atlassian Bamboo,
customized for building Java, Gradle and SWT-based applications.

It is not based on Atlassian image - instead it is built
from bare CentOS 7 image.

Components

This image is based on latest CentOS 7 image from official
Docker repository with additional applications installed:

  • version control systems:
    • CVS (/bin/cvs),
    • SVN (/bin/svn),
    • Git (/bin/git),
    • Hg (/bin/hg),
  • JDKs:
    • OpenJDK 1.7 (/usr/lib/jvm/java-1.7.0-openjdk),
    • OpenJDK 1.8 (/usr/lib/jvm/java-1.8.0-openjdk),
    • Oracle JDK 1.8 (/usr/java/latest),
  • build systems:
    • Ant (/usr/share/ant),
    • Maven 3 (/opt/apache-maven),
    • Gradle 2 (/opt/gradle),
  • miscellaneous:
    • unzip,
    • wget,
    • Xvfb (started during container initialization).

Apart from Gradle and Maven, all software is installed
from CentOS or EPEL repositories.

Gradle is installed using binary package available
on the official website.

Usage

Create Docker container and pass URL to your Bamboo installation
using BAMBOO_SERVER environment variable:

docker run -d --name="bamboo-agent1" -e BAMBOO_SERVER=http://bamboo.domain.local jacekkow/bamboo-agent-rich

Remember to approve access for a new remote agent in Bamboo
administration console if "Remote Agent Authentication" is enabled.
See https://confluence.atlassian.com/display/BAMBOO/Agent+authentication
for more information.

It is also possible to fix agent's UUID (e.g. to one already authorized)
using BAMBOO_AGENT_UUID environment variable:

docker run -d --name="bamboo-agent1" -e BAMBOO_AGENT_UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -e BAMBOO_SERVER=http://bamboo.domain.local jacekkow/bamboo-agent-rich

Internals

On first run agent JAR is downloaded from URL:

${BAMBOO_SERVER}/agentServer/agentInstaller/atlassian-bamboo-agent-installer.jar

Then Xvfb is started in background. Whenever it fails, it is automatically restarted.
Logs are written to file /tmp/Xvfb.log

Finally JAR downloaded in step 1 is started using default JVM (OpenJDK 1.7).

Docker Pull Command
Owner
jacekkow