1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/builds-binary-source.adoc
2019-05-13 13:57:48 +10:00

80 lines
3.6 KiB
Plaintext

// Module included in the following assemblies:
//
// * assembly/builds
// This module can be included from assemblies using the following include statement:
// include::<path>/builds-binary-source.adoc[leveloffset=+1]
[id="builds-binary-source_{context}"]
= Binary (local) source
Streaming content from a local file system to the builder is
called a `Binary` type build. The corresponding value of
`BuildConfig.spec.source.type` is `Binary` for such builds.
This source type is unique in that it is leveraged solely based on your use of
the `oc start-build`.
[NOTE]
====
Binary type builds require content to be streamed from the local file system, so
automatically triggering a binary type build (e.g. via an image change trigger)
is not possible, because the binary files cannot be provided. Similarly, you
cannot launch binary type builds from the web console.
====
To utilize binary builds, invoke `oc start-build` with one of these options:
* `--from-file`: The contents of the file you specify are sent as a binary stream
to the builder. You can also specify a URL to a file. Then, the builder stores
the data in a file with the same name at the top of the build context.
* `--from-dir` and `--from-repo`: The contents are archived and sent as a binary
stream to the builder. Then, the builder extracts the contents of the archive
within the build context directory. With `--from-dir`, you can also specify
a URL to an archive, which will be extracted.
* `--from-archive`: The archive you specify is sent to the builder, where it is
extracted within the build context directory. This option
behaves the same as `--from-dir`; an archive is created on your host first,
whenever the argument to these options is a directory.
In each of the previously listed cases:
* If your `BuildConfig` already has a `Binary` source type defined, it will
effectively be ignored and replaced by what the client sends.
* If your `BuildConfig` has a `Git` source type defined, it is dynamically
disabled, since `Binary` and `Git` are mutually exclusive, and the data in
the binary stream provided to the builder takes precedence.
Instead of a file name, you can pass a URL with HTTP or HTTPS schema to
`--from-file` and `--from-archive`. When using `--from-file` with a URL, the
name of the file in the builder image is determined by the `Content-Disposition`
header sent by the web server, or the last component of the URL path if the
header is not present. No form of authentication is supported and it is not
possible to use custom TLS certificate or disable certificate validation.
When using `oc new-build --binary=true`, the command ensures that the
restrictions associated with binary builds are enforced. The resulting
`BuildConfig` will have a source type of `Binary`, meaning that the only
valid way to run a build for this `BuildConfig` is to use `oc
start-build` with one of the `--from` options to provide the requisite binary
data.
ifndef::openshift-online[]
The `dockerfile` and `contextDir` source options have
special meaning with binary builds.
`dockerfile` can be used with any binary build source. If `dockerfile` is
used and the binary stream is an archive, its contents serve as a replacement
Dockerfile to any Dockerfile in the archive. If `dockerfile` is used with the
`--from-file` argument, and the file argument is named `dockerfile`, the value
from `dockerfile` replaces the value from the binary stream.
endif::[]
In the case of the binary stream encapsulating extracted archive content, the
value of the `contextDir` field is interpreted as a subdirectory within the
archive, and, if valid, the builder changes into that subdirectory before
executing the build.