Builds BOSH packages in a Docker container.
This command will compile all required packages in the BOSH releases referenced by
your role manifest. The command will create a compilation container named
<repository>-cbase-<FISSILE_VERSION>-<RELEASE_NAME>-<RELEASE_VERSION>-pkg-<PACKAGE_NAME>
for each package (e.g. fissile-cbase-1.0.0-cf-217-pkg-nats
).
All containers are removed, whether compilation is successful or not. However, if the compilation is interrupted during compilation (e.g. sending SIGINT), containers will most likely be left behind.
Compiled packages are stored in <work-dir>/compilation
. Fissile uses the
package's fingerprint as part of the directory structure. This means that if the
same package (with the same version) is used by multiple releases, it will only be
compiled once.
fissile build packages [flags]
--compilation-cache-config string Points to a file containing configuration for a compiled package cache or contains the configuration as valid yaml (default "~/.fissile/package-cache.yaml")
--docker-network-mode string Specify network mode to be used when building with docker. e.g. "--docker-network-mode host" is equivalent to "docker run --network=host"
-h, --help help for packages
--only-releases string Build only packages for the given release names; comma separated.
--roles string Build only packages for the given instance group names; comma separated.
-s, --stemcell string The source stemcell
--stream-packages If true, fissile will stream packages to the docker daemon for compilation, instead of mounting volumes
--without-docker Build without docker; this may adversely affect your system. Only supported on Linux, and requires CAP_SYS_ADMIN.
-c, --cache-dir string Local BOSH cache directory. (default "~/.bosh/cache")
--config string config file (default is $HOME/.fissile.yaml)
-d, --dark-opinions string Path to a BOSH deployment manifest file that contains properties that should not have opinionated defaults.
--docker-organization string Docker organization used when referencing image names
--docker-password string Password for authenticated docker registry
--docker-registry string Docker registry used when referencing image names
--docker-username string Username for authenticated docker registry
--final-releases-dir string Local final releases directory. (default "~/.final-releases")
-l, --light-opinions string Path to a BOSH deployment manifest file that contains properties to be used as defaults.
-M, --metrics string Path to a CSV file to store timing metrics into.
-o, --output string Choose output format, one of human, json, or yaml (currently only for 'show properties') (default "human")
--output-graph string Output a graphviz graph to the given file name
-r, --release string Path to final or dev BOSH release(s).
-n, --release-name string Name of a dev BOSH release; if empty, default configured dev release name will be used; Final release always use the name in release.MF
-v, --release-version string Version of a dev BOSH release; if empty, the latest dev release will be used; Final release always use the version in release.MF
-p, --repository string Repository name prefix used to create image names.
-m, --role-manifest string Path to a yaml file that details which jobs are used for each instance group.
-V, --verbose Enable verbose output.
-w, --work-dir string Path to the location of the work directory. (default "/var/fissile")
-W, --workers int Number of workers to use; zero means determine based on CPU count.
- fissile build - Has subcommands to build all images and necessary artifacts.