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 |