Follow this step-by-step guide to set up a Nuclio development environment that uses Docker.
- Prerequisites
- Run Nuclio
- Deploy a function with the Nuclio dashboard
- Deploy a function with the Nuclio CLI (nuctl)
- What's next
Before starting the set-up procedure, ensure that the following prerequisites are met:
-
Your environment has a running Docker daemon. To ensure that your Docker daemon is running properly, run the following command with the same user that will be used to execute Nuclio CLI commands:
docker version
-
The Nuclio CLI (
nuctl
) is installed — if you wish to use the CLI to deploy Nuclio functions. To install the CLI, simply download the appropriate CLI version to your installation machine.
Execute the following command from a command-line shell to run Nuclio on Docker.
Note: The
stable
tag refers to the latest version released from themaster
branch of the Nuclio repository (unlike versioned branches, such as1.3.x
).
docker run \
--rm \
--detach \
--publish 8070:8070 \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp:/tmp \
--name nuclio-dashboard \
quay.io/nuclio/dashboard:stable-amd64
Browse to http://localhost:8070
to see the Nuclio dashboard.
Select the "default" project and then select New Function from the action toolbar to display the Create function page (http://localhost:8070/projects/default/create-function).
Choose one of the predefined template functions, and select Deploy.
The first build populates the local Docker cache with base images and other files, so it might take a while to complete, depending on your network.
When the function deployment completes, you can select Test to invoke the function with a body.
Run the following Nuclio CLI (nuctl
) command from a command-line shell to deploy the example helloworld
Go function.
You can add the --verbose
flag if you want to peek under the hood.
nuctl deploy helloworld \
--path https://raw.githubusercontent.com/nuclio/nuclio/master/hack/examples/golang/helloworld/helloworld.go
When the function deployment completes, you can get the function information by running the following CLI command:
nuctl get function helloworld
Sample output -
NAMESPACE | NAME | PROJECT | STATE | NODE PORT | REPLICAS
nuclio | helloworld | default | ready | 42089 | 1/1
You can see from the sample output that the deployed function helloworld
is running and using port 42089
.
Run the following CLI command to invoke the function:
nuctl invoke helloworld --method POST --body '{"hello":"world"}' --content-type "application/json"
Sample output -
> Response headers:
Server = nuclio
Date = Thu, 18 Jun 2020 06:56:27 GMT
Content-Type = application/text
Content-Length = 21
> Response body:
Hello, from Nuclio :]
See the following resources to make the best of your new Nuclio environment: