Fuses a Payload together with the Components it requires into an Image.
Usage: gradle boxfuseFuse -Dboxfuse.payload=payload
When run as part of a build, the project artifact will automatically be used as a payload.
> gradle boxfuseFuse -Dboxfuse.payload=hello-1.0.war Fusing Image for hello-1.0.war ... Image fused in 00:07.351s (48147 K) -> axelfontaine/hello:1.0
com.boxfuse.client.gradle.task.FuseTask
Supported Payload formats:
Plugin Parameter | Gradle/System property | Default | Description | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
user | boxfuse.user | Required - Your CloudCaptain Client user. Also configurable via the BOXFUSE_USER
environment variable |
|||||||||||||||||||||||
secret | boxfuse.secret | Required - Your CloudCaptain Client secret. Also configurable via the BOXFUSE_SECRET
environment variable |
|||||||||||||||||||||||
payload | boxfuse.payload | The project artifact | The Payload to use. Can be either a file, a directory or a URL. | ||||||||||||||||||||||
payloadPort | boxfuse.payload.port | autodetected | The name of the port on which the payload starts (usually http or https) | ||||||||||||||||||||||
payloadPath | boxfuse.payload.path | / | The path where the payload starts | ||||||||||||||||||||||
cmd | boxfuse.cmd | first executable file in image | Generic Linux x64 apps only The command to start the app including relative path and all necessary arguments |
||||||||||||||||||||||
components | boxfuse.components.NAME | latest version | Pins the component with this name onto this version. Example: -components.tomcat=8.0.9 |
||||||||||||||||||||||
debug | boxfuse.debug | false | Start the Payload in debug mode when an Instance launches | ||||||||||||||||||||||
debugWait | boxfuse.debug.wait | false | JVM apps only Whether the JVM should wait for the remote debugger to connect (Only applicable when debug mode is active) |
||||||||||||||||||||||
envvars | boxfuse.envvars.NAME | Fuses this environment variable into the image and make it available at runtime Example: boxfuse.envvars.JDBC_URL=jdbc:mydburl |
|||||||||||||||||||||||
healthcheck | boxfuse.healthcheck | true | Check whether to payload started correctly | ||||||||||||||||||||||
healthcheckPort | boxfuse.healthcheck.port | autodetected | The name of the port to check whether the payload started correctly (must be an https or http port, not tcp or udp). Example: admin-https |
||||||||||||||||||||||
healthcheckPath | boxfuse.healthcheck.path | / | The path to check whether to payload started correctly | ||||||||||||||||||||||
healthcheckTimeout | boxfuse.healthcheck.timeout | 300 | The number of seconds to wait for the Payload to come up | ||||||||||||||||||||||
image | boxfuse.image | autodetected | The image app name and version. By default this is autodetected based on the payload name.
For example myapp-1.2.jar would trigger the creation of the image myapp:1.2 .
You can override this by explicitly setting this property to say my-other-app:333 .
|
||||||||||||||||||||||
jvmArgs | boxfuse.jvm.args | JVM apps only Extra arguments to pass to the JVM |
|||||||||||||||||||||||
jvmJmx | boxfuse.jvm.jmx | false | JVM apps only Enable the JMX remote management and profiling interface for the JVM |
||||||||||||||||||||||
jvmMainClass | boxfuse.jvm.main.class | autodetected | JVM apps only Main class to invoke on JVM startup |
||||||||||||||||||||||
jvmMainArgs | boxfuse.jvm.main.args | JVM apps only Arguments to pass to the main class |
|||||||||||||||||||||||
linuxArgs | boxfuse.linux.args | quiet | Experts only The arguments to pass from the bootloader to the Linux kernel |
||||||||||||||||||||||
live | boxfuse.live | false | Enable live reloading of changes in dev for super fast round-trips. Note that images with live reloading cannot be pushed to the CloudCaptain Vault. | ||||||||||||||||||||||
newrelicLicensekey | boxfuse.newrelic.licensekey | Installs and configures the New Relic agents to monitor your instance. | |||||||||||||||||||||||
ports | boxfuse.ports.NAME | http=80 | Exposes the port of the app with this name using this definition. Example: boxfuse.ports.jmx=8001 Supported formats:
|
||||||||||||||||||||||
tmp | boxfuse.tmp | 1 | The amount of temp space to allocate to /tmp in GB | ||||||||||||||||||||||
vault | boxfuse.vault | false | Immediately upload the new Image to the CloudCaptain Vault |
boxfuse { user='1234567890abcdef1234567890abcdef12345678' secret='ABCDEFGHIJKL1234567abcdefghijklmnopqrstu' payload='hello-1.0.war' payloadPort='https' payloadPath='/app' cmd='-cmd=bin/myapp -with -my args' components=[ 'openjdk':'8.25.40', 'tomcat':'8.0.20' ] debug=true debugWait=false envvars=[ 'JDBC_URL':'jdbc:mydburl', 'MY_OTHER_VAR':'abc' ] healthcheck=true healthcheckPort='https' healthcheckPath='/health' healthcheckTimeout=120 image='my-other-app:333' jvmArgs='-DmycustomProp=abc' jvmJmx=true jvmMainClass='com.mycorp.MyApp' jvmMainArgs='-abc -def' linuxArgs='quiet' live=true newrelicLicensekey='0123456789abcdef0123456789abcdef012345' ports=[ 'https':443, 'http':80 ] tmp=16 vault=false }
After you execute run, CloudCaptain will automatically define the following Gradle properties
Gradle property | Description |
---|---|
boxfuse.image | The image that was used to launch the instances |