Files
fn-serverless/docs/packaging.md
Travis Reeder 0d71e1e38e Docs update with new fnctl commands (#273)
* Added high level roadmap.

* Changed to funtion.yaml.

* Added logo

* updating quickstart code example, WIP, waiting on another merge.

* Minor updates.

* Changed function.yaml to func.yaml and updated fnctl README.
2016-11-15 01:40:05 +01:00

1.1 KiB

Packaging your Function

Packaging a function has two parts:

  • Create a Docker image for your function with an ENTRYPOINT
  • Push your Docker image to a registry (Docker Hub by default)

Once it's pushed to a registry, you can use it by referencing it when adding a route.

Using fnctl

This is the easiest way to build, package and publish your functions.

Creating an image

The basic Dockerfile for most languages is along these lines:

# Choose base image
FROM iron/go
# Set the working directory
WORKDIR /function
# Add your binary or code to the working directory
ADD funcbin /function/
# Set what will run when a container is started for this image
ENTRYPOINT ["./funcbin"]

Then you simply build your function:

docker run --rm -v "$PWD":/go/src/$FUNCPKG -w /go/src/$FUNCPKG iron/go:dev go build -o funcbin
docker build -t $USERNAME/myfunction .

Or using fnctl:

fnctl build

Push your image

This part is simple:

docker push $USERNAME/myfunction 

Or using fnctl:

fnctl push