Updated binary environment README (#773)
- Added usage instructions for getting started quickly. - Added instructions for using the builder
This commit is contained in:
committed by
Ta-Ching Chen
parent
b5a906b2f4
commit
9438f3c4ec
@@ -4,22 +4,30 @@ The `binary` runtime is a go server that uses a subprocess to invoke executables
|
|||||||
|
|
||||||
Use Cases
|
Use Cases
|
||||||
- Execute bash scripts
|
- Execute bash scripts
|
||||||
- Run executables of languages that have no dedicated environment yet.
|
- Execute arbitrary binaries (such as common sysadmin tools)
|
||||||
|
- Get support in _any_ programming language by executing the generated executable.
|
||||||
|
|
||||||
## Words of Caution
|
⚠️ **Words of Caution** ⚠️
|
||||||
The environment runs on an alpine image with some additional utilty commandline tools installed, such as 'grep'.
|
|
||||||
However, in case you want to make use of more ecsoteric commandline tools, you should add the relevant apk to the
|
The environment runs on an alpine image with some additional utility commandline tools installed, such as 'grep'.
|
||||||
|
However, in case you want to make use of more esoteric commandline tools, you should add the relevant apk to the
|
||||||
Dockerfile and build a new binary environment. See 'Compiling' for instructions.
|
Dockerfile and build a new binary environment. See 'Compiling' for instructions.
|
||||||
|
|
||||||
When executing functions using binaries, **ensure that the executable is built for the right architecture**.
|
When executing functions using binaries, **ensure that the executable is built for the right architecture**.
|
||||||
Using the default binary environment this means that the binary should be build for Linux.
|
Using the default binary environment this means that the binary should be build for Linux.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
To get started with the latest binary environment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
fission env create --name binary --image fission/binary-env --builder fission/binary-builder
|
||||||
|
```
|
||||||
|
|
||||||
The interface to the executable used by this environment is somewhat similar to a [CGI interface](https://en.wikipedia.org/wiki/Common_Gateway_Interface).
|
The interface to the executable used by this environment is somewhat similar to a [CGI interface](https://en.wikipedia.org/wiki/Common_Gateway_Interface).
|
||||||
This means that any HTTP headers are converted to environment variables of the form "HTTP_<header-name>". For example these
|
This means that any HTTP headers are converted to environment variables of the form "HTTP_<header-name>". For example these
|
||||||
are some of frequently occurring headers:
|
are some of frequently occurring headers:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
# Request Metadata
|
# Request Metadata
|
||||||
CONTENT_LENGTH
|
CONTENT_LENGTH
|
||||||
REQUEST_URI
|
REQUEST_URI
|
||||||
@@ -28,18 +36,23 @@ REQUEST_METHOD
|
|||||||
# HTTP Headers
|
# HTTP Headers
|
||||||
HTTP_ACCEPT
|
HTTP_ACCEPT
|
||||||
HTTP_USER-AGENT
|
HTTP_USER-AGENT
|
||||||
...
|
HTTP_CONTENT-TYPE
|
||||||
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
The body of HTTP piped over the STDIN to the executable.
|
The body of HTTP piped over the STDIN to the executable.
|
||||||
All output that is provided to the server over the STDOUT will be transformed into the HTTP response.
|
All output that is provided to the server over the STDOUT will be transformed into the HTTP response.
|
||||||
|
|
||||||
|
See the [README](../../examples/binary/README.md) in the binary examples directory for additional usage instructions.
|
||||||
|
|
||||||
## Compiling
|
## Compiling
|
||||||
|
|
||||||
Build the Dockerfile:
|
To build the runtime environment:
|
||||||
```bash
|
```bash
|
||||||
docker build --tag=${USER}/binary-env .
|
docker build --tag=${USER}/binary-env .
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [README](../../examples/binary/README.md) in the binary examples directory for usage instructions.
|
To build the builder environment:
|
||||||
|
```bash
|
||||||
|
(cd builder/ && docker build --tag=${USER}/binary-builder .)
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user