Fuses a Payload together with the Components it requires into an Image.
Usage: mvn boxfuse:fuse -Dboxfuse.payload=payload
When run as part of a build, the project artifact will automatically be used as a payload.
> mvn boxfuse:fuse -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
Supported Payload formats:
Plugin Parameter | Maven/System property | Default | Description | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
user | boxfuse.user | Required - Your CloudCaptain Client user. Also configurable via the BOXFUSE_USER
environment variable or the Maven settings.xml
|
|||||||||||||||||||||||
secret | boxfuse.secret | Required - Your CloudCaptain Client secret. Also configurable via the BOXFUSE_SECRET
environment variable or the Maven settings.xml |
|||||||||||||||||||||||
serverid | boxfuse.serverid | boxfuse | The id of the server in the Maven settings.xml file to
load the credentials from. This is an alternative to passing the credentials in directly through properties. |
||||||||||||||||||||||
payload.port | boxfuse.payload.port | autodetected | The name of the port on which the payload starts (usually http or https) | ||||||||||||||||||||||
payload.path | 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 | ||||||||||||||||||||||
debug.wait | 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 | ||||||||||||||||||||||
healthcheck.port | 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 |
||||||||||||||||||||||
healthcheck.path | boxfuse.healthcheck.path | / | The path to check whether to payload started correctly | ||||||||||||||||||||||
healthcheck.timeout | 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 .
|
||||||||||||||||||||||
jvm.args | boxfuse.jvm.args | JVM apps only Extra arguments to pass to the JVM |
|||||||||||||||||||||||
jvm.jmx | boxfuse.jvm.jmx | false | JVM apps only Enable the JMX remote management and profiling interface for the JVM |
||||||||||||||||||||||
jvm.main.class | boxfuse.jvm.main.class | autodetected | JVM apps only Main class to invoke on JVM startup |
||||||||||||||||||||||
jvm.main.args | boxfuse.jvm.main.args | JVM apps only Arguments to pass to the main class |
|||||||||||||||||||||||
linux.args | 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. | ||||||||||||||||||||||
newrelic.licensekey | boxfuse.newrelic.licensekey | Installs and configures the New Relic agents to monitor your instance. | |||||||||||||||||||||||
payload | boxfuse.payload | build artifact | The payload to use when fusing an image. This is useful when running the CloudCaptain Maven plugin from the command-line or when multiple artifacts are produced and you want to use an artifact which is not the main one (an artifact using a classifier for example). | ||||||||||||||||||||||
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 |
<configuration> <user>1234567890abcdef1234567890abcdef12345678</user> <secret>ABCDEFGHIJKL1234567abcdefghijklmnopqrstu</secret> <payload>hello-1.0.war</payload> <payload.port>https</payload.port> <payload.path>/app</payload.path> <cmd>-cmd=bin/myapp -with -my args</cmd> <components> <openjdk>8.25.40</openjdk> <tomcat>8.0.20</tomcat> </components> <debug>true</debug> <debug.wait>false</debug.wait> <envvars> <JDBC_URL>jdbc:mydburl</JDBC_URL> <MY_OTHER_VAR>abc</MY_OTHER_VAR> </envvars> <healthcheck>true</healthcheck> <healthcheck.port>https</healthcheck.port> <healthcheck.path>/health</healthcheck.path> <healthcheck.timeout>120</healthcheck.timeout> <image>my-other-app:333</image> <jvm.args>-DmycustomProp=abc</jvm.args> <jvm.jmx>true</jvm.jmx> <jvm.main.class>com.mycorp.MyApp</jvm.main.class> <jvm.main.args>-abc -def</jvm.main.args> <linux.args>quiet</linux.args> <live>true</live> <newrelic.licensekey>0123456789abcdef0123456789abcdef012345</newrelic.licensekey> <payload>my-app-1.2.jar</payload> <ports> <https>443</https> <http>80</http> </ports> <tmp>16</tmp> <vault>false</vault> </configuration>
After you execute run, CloudCaptain will automatically define the following Maven properties
Maven property | Description |
---|---|
boxfuse.image | The image that was used to launch the instances |