mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
reorging examples/tutorials a bit
This commit is contained in:
2
Gopkg.lock
generated
2
Gopkg.lock
generated
@@ -383,7 +383,7 @@ memo = "bd1e1a24b7655bd27880d6b3d752e400a4e36e7b1d7129a1a9e54a11fac75c9c"
|
||||
branch = "master"
|
||||
name = "github.com/moby/moby"
|
||||
packages = ["pkg/jsonmessage"]
|
||||
revision = "da3c3ec1458588d5d263dc3babd3dca95fdc7d8d"
|
||||
revision = "e925820bfd5af066497800a02c597d6846988398"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/opencontainers/go-digest"
|
||||
|
||||
59
README.md
59
README.md
@@ -2,7 +2,8 @@
|
||||
|
||||
<!-- [](https://godoc.org/github.com/treeder/functions) -->
|
||||
|
||||
Oracle Functions is an open source [serverless](serverless.md) platform, or as we like to refer to it, Functions as a Service (FaaS) platform that you can run anywhere. Some of it's key features:
|
||||
Oracle Functions is an event-driven, open source, [functions-as-a-service](serverless.md) compute
|
||||
platform that you can run anywhere. Some of it's key features:
|
||||
|
||||
* Write once
|
||||
* [Any language](docs/faq.md#which-languages-are-supported)
|
||||
@@ -13,6 +14,7 @@ Oracle Functions is an open source [serverless](serverless.md) platform, or as w
|
||||
* Easy to use [for developers](docs/README.md#for-developers)
|
||||
* Easy to manage [for operators](docs/README.md#for-operators)
|
||||
* Written in [Go](https://golang.org)
|
||||
* Simple yet powerful extensibility
|
||||
|
||||
|
||||
## Prequisites
|
||||
@@ -65,14 +67,11 @@ configuration options [here](docs/operating/options.md). If you are on Windows,
|
||||
|
||||
-->
|
||||
|
||||
### Writing Your First Function
|
||||
### Your First Function
|
||||
|
||||
Functions are small but powerful blocks of code that generally do one simple thing. Forget about monoliths when using functions, just focus on the task that you want the function to perform.
|
||||
|
||||
Start with this readme tutorial, and then you can learn more about function best practices in
|
||||
our section [Writing Functions](docs/writing.md).
|
||||
|
||||
The following is a simple Go program that outputs a string to STDOUT. Copy and paste the code below into a file called `func.go`.
|
||||
The following is a simple Go program that outputs a string to STDOUT. Copy and paste the code below into a file called `func.go`. Currently the function must be named func.your_language_extention (ie func.go, func.js, etc.)
|
||||
|
||||
```go
|
||||
package main
|
||||
@@ -82,30 +81,30 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Boom. Oracle Functions.")
|
||||
fmt.Println("Hello from Oracle Functions!")
|
||||
}
|
||||
```
|
||||
|
||||
Now run the following commands to build your function and deploy it:
|
||||
Now run the following CLI commands:
|
||||
|
||||
```sh
|
||||
# Create your first application
|
||||
fn apps create myapp
|
||||
|
||||
# Initilizes your function w/ prebuilt func.yaml
|
||||
# Replace $USERNAME with your DockerHub username
|
||||
fn init $USERNAME/hello
|
||||
# Initialize your function
|
||||
# This detects your runtime from the code above and creates a func.yaml
|
||||
fn init <DOCKERHUB_USERNAME>/hello
|
||||
|
||||
# Test your function
|
||||
# This will run inside a container exactly how it will on the server
|
||||
fn run
|
||||
|
||||
# Deploy it to your functions server (default localhost:8080)
|
||||
# Deploy your functions to the Oracle Functions server (default localhost:8080)
|
||||
# This will create a route to your function as well
|
||||
fn deploy myapp
|
||||
```
|
||||
|
||||
Boom. Now you can call your function:
|
||||
Now you can call your function:
|
||||
|
||||
```sh
|
||||
curl http://localhost:8080/r/myapp/hello
|
||||
@@ -116,36 +115,32 @@ Or in a browser: [http://localhost:8080/r/myapp/hello](http://localhost:8080/r/m
|
||||
That's it! You just deployed your first function and called it. Now to update your function
|
||||
you can update your code and run ```fn deploy myapp``` again.
|
||||
|
||||
## Learning More
|
||||
## To Learn More
|
||||
|
||||
### Documentation
|
||||
- Walk through the following [tutorial series](docs/tutorial)
|
||||
- See our [full documentation](docs/README.md)
|
||||
- View our [examples directory](/examples)
|
||||
- You can also write your functions in AWS [Lambda format](docs/lambda/README.md)
|
||||
|
||||
See [docs/](docs/README.md) for full documentation.
|
||||
## Get Involved
|
||||
|
||||
More on [Writing Functions](docs/writing.md).
|
||||
|
||||
And you can find a bunch of examples in the [/examples](/examples) directory.
|
||||
|
||||
You can also write your functions in AWS's [Lambda format](docs/lambda/README.md).
|
||||
|
||||
### Get Involved
|
||||
|
||||
TODO: Slack or Discord community.
|
||||
|
||||
See [contributing](CONTRIBUTING.md).
|
||||
- TODO: Slack or Discord community
|
||||
- Learn how to [contribute](CONTRIBUTING.md)
|
||||
- See [milestones](https://gitlab.oracledx.com/odx/functions/milestones) for detailed issues
|
||||
|
||||
|
||||
## Functions UI
|
||||
## User Interface
|
||||
|
||||
This is the graphical user interface for Oracle Functions. It is currently not buildable.
|
||||
|
||||
```sh
|
||||
docker run --rm -it --link functions:api -p 4000:4000 -e "API_URL=http://api:8080" treeder/functions-ui
|
||||
```
|
||||
|
||||
For more information, see: https://github.com/treeder/functions-ui
|
||||
For more information, see: [https://github.com/treeder/functions-ui](https://github.com/treeder/functions-ui)
|
||||
|
||||
|
||||
## Roadmap
|
||||
|
||||
See [milestones](https://gitlab.oracledx.com/odx/functions/milestones) for detailed issues.
|
||||
## Next up: Walk through the following [tutorial series](docs/tutorial/) -->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# Example Functions
|
||||
|
||||
This directory has a collection of example functions you can look at to learn more about how to write them
|
||||
or just copy one and build on it to get started faster.
|
||||
This directory has a collection of example functions you can look at to learn more about how to write them or just copy one and build on it to get started faster.
|
||||
|
||||
## Hello World Examples
|
||||
## Tutorial Series
|
||||
|
||||
The [Hello World examples](hello/) are the most basic functions you can write and we'll try to have an example in most major languages.
|
||||
This is a good place to start and good examples to copy and build upon.
|
||||
The [Tutorial Series](tutorial/) will demonstrate some of Oracle Functions capabilities through a series of exmaples. We'll try to examples in most major languages. This is a great place to start!
|
||||
|
||||
7
examples/hello/go/.gitignore
vendored
7
examples/hello/go/.gitignore
vendored
@@ -1,7 +0,0 @@
|
||||
vendor/
|
||||
/hello
|
||||
/go
|
||||
/app
|
||||
/__uberscript__
|
||||
|
||||
func.yaml
|
||||
@@ -1,27 +0,0 @@
|
||||
# Quick Example for a Go Function (3 minutes)
|
||||
|
||||
This example will show you how to test and deploy Go (Golang) code to Oracle Functions.
|
||||
|
||||
```sh
|
||||
# create your func.yaml file
|
||||
fn init <YOUR_DOCKERHUB_USERNAME>/hello
|
||||
# build the function
|
||||
fn build
|
||||
# test it
|
||||
cat hello.payload.json | fn run
|
||||
# push it to Docker Hub
|
||||
fn push
|
||||
# Create a route to this function on Oracle Functions
|
||||
fn routes create myapp /hello
|
||||
```
|
||||
|
||||
Now you can call your function on Oracle Functions:
|
||||
|
||||
```sh
|
||||
curl -H "Content-Type: application/json" -X POST -d @hello.payload.json http://localhost:8080/r/myapp/hello
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
Be sure you're dependencies are in the `vendor/` directory and that's it.
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Person struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
func main() {
|
||||
p := &Person{Name: "World"}
|
||||
json.NewDecoder(os.Stdin).Decode(p)
|
||||
fmt.Printf("Hello %v!", p.Name)
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "Johnny"
|
||||
}
|
||||
3
examples/hello/node/.gitignore
vendored
3
examples/hello/node/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
node_modules/
|
||||
func.yaml
|
||||
Dockerfile
|
||||
@@ -1,41 +0,0 @@
|
||||
## Quick Example for a NodeJS Function (4 minutes)
|
||||
|
||||
This example will show you how to test and deploy a Node function to Oracle Functions.
|
||||
|
||||
```sh
|
||||
# create your func.yaml file
|
||||
fn init <YOUR_DOCKERHUB_USERNAME>/hello
|
||||
# build the function
|
||||
fn build
|
||||
# test it
|
||||
cat hello.payload.json | fn run
|
||||
# push it to Docker Hub
|
||||
fn push
|
||||
# Create a route to this function on Oracle Functions
|
||||
fn routes create myapp /hello
|
||||
```
|
||||
|
||||
Now surf to: http://localhost:8080/r/myapp/hello
|
||||
|
||||
## Dependencies
|
||||
|
||||
Create a [package.json](https://docs.npmjs.com/getting-started/using-a-package.json) file in your functions directory.
|
||||
|
||||
Run:
|
||||
|
||||
```sh
|
||||
docker run --rm -v "$PWD":/function -w /function funcy/node:dev npm install
|
||||
```
|
||||
|
||||
Then everything should work.
|
||||
|
||||
For example, using the `package.json` file in this directory which includes the [request](https://www.npmjs.com/package/request) package, you can add this to func.js and it will work:
|
||||
|
||||
```js
|
||||
var request = require('request');
|
||||
request('http://www.google.com', function (error, response, body) {
|
||||
if (!error && response.statusCode == 200) {
|
||||
console.log(body) // Show the HTML for the Google homepage.
|
||||
}
|
||||
})
|
||||
```
|
||||
@@ -1,9 +0,0 @@
|
||||
name = "World";
|
||||
fs = require('fs');
|
||||
try {
|
||||
obj = JSON.parse(fs.readFileSync('/dev/stdin').toString())
|
||||
if (obj.name != "") {
|
||||
name = obj.name
|
||||
}
|
||||
} catch(e) {}
|
||||
console.log("Hello", name, "from Node!");
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "Johnny"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"name": "my-awesome-func",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"request": "^2.78.0"
|
||||
}
|
||||
}
|
||||
1
examples/hello/php/.gitignore
vendored
1
examples/hello/php/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
vendor/
|
||||
@@ -1,6 +0,0 @@
|
||||
FROM funcy/php
|
||||
|
||||
WORKDIR /app
|
||||
ADD . /app
|
||||
|
||||
ENTRYPOINT ["php", "hello.php"]
|
||||
@@ -1,48 +0,0 @@
|
||||
## Quick Example for a PHP Function (4 minutes)
|
||||
|
||||
This example will show you how to test and deploy Go (Golang) code to Oracle Functions.
|
||||
|
||||
### 1. Prepare the `func.yaml` file:
|
||||
|
||||
At func.yaml you will find:
|
||||
|
||||
```yml
|
||||
name: USERNAME/hello
|
||||
version: 0.0.1
|
||||
path: /hello
|
||||
build:
|
||||
- docker run --rm -v "$PWD":/worker -w /worker funcy/php:dev composer install
|
||||
```
|
||||
|
||||
The important step here is to ensure you replace `USERNAME` with your Docker Hub account name. Some points of note:
|
||||
the application name is `phpapp` and the route for incoming requests is `/hello`. These informations are relevant for
|
||||
the moment you try to test this function.
|
||||
|
||||
### 2. Build:
|
||||
|
||||
```sh
|
||||
# build the function
|
||||
fn build
|
||||
# test it
|
||||
cat hello.payload.json | fn run
|
||||
# push it to Docker Hub
|
||||
fn push
|
||||
# Create a route to this function on Oracle Functions
|
||||
fn routes create phpapp /hello
|
||||
```
|
||||
|
||||
`-v` is optional, but it allows you to see how this function is being built.
|
||||
|
||||
### 3. Queue jobs for your function
|
||||
|
||||
Now you can start jobs on your function. Let's quickly queue up a job to try it out.
|
||||
|
||||
```sh
|
||||
cat hello.payload.json | fn call phpapp /hello
|
||||
```
|
||||
|
||||
Here's a curl example to show how easy it is to do in any language:
|
||||
|
||||
```sh
|
||||
curl -H "Content-Type: application/json" -X POST -d @hello.payload.json http://localhost:8080/r/phpapp/hello
|
||||
```
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"require": {
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
name: USERNAME/hello
|
||||
version: 0.0.1
|
||||
path: /hello
|
||||
build:
|
||||
- docker run --rm -v "$PWD":/worker -w /worker funcy/php:dev composer install
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "Johnny"
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
stream_set_blocking(STDIN, 0);
|
||||
$payload = json_decode(file_get_contents("php://stdin"), true);
|
||||
if (isset($payload['name'])) {
|
||||
echo "Hello ", $payload['name'],"!\n\n";
|
||||
} else {
|
||||
echo "Hello World!\n\n";
|
||||
}
|
||||
2
examples/hello/python/.gitignore
vendored
2
examples/hello/python/.gitignore
vendored
@@ -1,2 +0,0 @@
|
||||
packages/
|
||||
func.yaml
|
||||
@@ -1,6 +0,0 @@
|
||||
FROM funcy/python:2
|
||||
|
||||
WORKDIR /app
|
||||
ADD . /app
|
||||
|
||||
ENTRYPOINT ["python", "hello.py"]
|
||||
@@ -1,48 +0,0 @@
|
||||
## Quick Example for a Python Function (4 minutes)
|
||||
|
||||
This example will show you how to test and deploy Go (Golang) code to Oracle Functions.
|
||||
|
||||
### 1. Prepare the `func.yaml` file:
|
||||
|
||||
At func.yaml you will find:
|
||||
|
||||
```yml
|
||||
name: USERNAME/hello
|
||||
version: 0.0.1
|
||||
path: /hello
|
||||
build:
|
||||
- docker run --rm -v "$PWD":/worker -w /worker funcy/python:2-dev pip install -t packages -r requirements.txt
|
||||
```
|
||||
|
||||
The important step here is to ensure you replace `USERNAME` with your Docker Hub account name. Some points of note:
|
||||
the application name is `pythonapp` and the route for incoming requests is `/hello`. These informations are relevant for
|
||||
the moment you try to test this function.
|
||||
|
||||
### 2. Build:
|
||||
|
||||
```sh
|
||||
# build the function
|
||||
fn build
|
||||
# test it
|
||||
cat hello.payload.json | fn run
|
||||
# push it to Docker Hub
|
||||
fn push
|
||||
# Create a route to this function on Oracle Functions
|
||||
fn routes create pythonapp /hello
|
||||
```
|
||||
|
||||
`-v` is optional, but it allows you to see how this function is being built.
|
||||
|
||||
### 3. Queue jobs for your function
|
||||
|
||||
Now you can start jobs on your function. Let's quickly queue up a job to try it out.
|
||||
|
||||
```sh
|
||||
cat hello.payload.json | fn call pythonapp /hello
|
||||
```
|
||||
|
||||
Here's a curl example to show how easy it is to do in any language:
|
||||
|
||||
```sh
|
||||
curl -H "Content-Type: application/json" -X POST -d @hello.payload.json http://localhost:8080/r/pythonapp/hello
|
||||
```
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "Johnny"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
import sys
|
||||
sys.path.append("packages")
|
||||
import os
|
||||
import json
|
||||
|
||||
name = "World"
|
||||
if not os.isatty(sys.stdin.fileno()):
|
||||
obj = json.loads(sys.stdin.read())
|
||||
if obj["name"] != "":
|
||||
name = obj["name"]
|
||||
|
||||
print "Hello", name, "!!!"
|
||||
5
examples/hello/ruby/.gitignore
vendored
5
examples/hello/ruby/.gitignore
vendored
@@ -1,5 +0,0 @@
|
||||
bundle/
|
||||
.bundle/
|
||||
func.yaml
|
||||
Dockerfile
|
||||
Gemfile.lock
|
||||
@@ -1,4 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'httparty', '~> 0.14.0'
|
||||
gem 'json', '> 1.8.2'
|
||||
@@ -1,44 +0,0 @@
|
||||
## Quick Example for a Ruby Function (4 minutes)
|
||||
|
||||
This example will show you how to test and deploy a Ruby function to Oracle Functions.
|
||||
|
||||
```sh
|
||||
# create your func.yaml file
|
||||
fn init <YOUR_DOCKERHUB_USERNAME>/hello
|
||||
# install dependencies, we need the json gem to run this
|
||||
docker run --rm -it -v ${pwd}:/worker -w /worker funcy/ruby:dev bundle install --standalone --clean
|
||||
# build the function
|
||||
fn build
|
||||
# test it
|
||||
cat hello.payload.json | fn run
|
||||
# push it to Docker Hub
|
||||
fn push
|
||||
# Create a route to this function on Oracle Functions
|
||||
fn routes create myapp /hello
|
||||
```
|
||||
|
||||
Now surf to: http://localhost:8080/r/myapp/hello
|
||||
|
||||
## Dependencies
|
||||
|
||||
Create a [Gemfile](http://bundler.io/gemfile.html) file in your function directory, then run:
|
||||
|
||||
```sh
|
||||
docker run --rm -it -v ${pwd}:/worker -w /worker funcy/ruby:dev bundle install --standalone --clean
|
||||
```
|
||||
|
||||
Ruby doesn't pick up the gems automatically, so you'll have to add this to the top of your `func.rb` file:
|
||||
|
||||
```ruby
|
||||
require_relative 'bundle/bundler/setup'
|
||||
```
|
||||
|
||||
Open `func.rb` to see it in action.
|
||||
|
||||
To update dependencies:
|
||||
|
||||
```sh
|
||||
docker run --rm -it -v ${pwd}:/worker -w /worker funcy/ruby:dev bundle update
|
||||
# then install again to vendor them
|
||||
docker run --rm -it -v ${pwd}:/worker -w /worker funcy/ruby:dev bundle update
|
||||
```
|
||||
@@ -1,12 +0,0 @@
|
||||
require_relative 'bundle/bundler/setup'
|
||||
require 'json'
|
||||
|
||||
name = "World"
|
||||
|
||||
payload = STDIN.read
|
||||
if payload != ""
|
||||
payload = JSON.parse(payload)
|
||||
name = payload['name']
|
||||
end
|
||||
|
||||
puts "Hello #{name} from Ruby!"
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "Johnny"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
[package]
|
||||
name = "func"
|
||||
version = "0.1.0"
|
||||
authors = ["Seif Lotfy <seif@iron.io>"]
|
||||
|
||||
[dependencies]
|
||||
@@ -1,33 +0,0 @@
|
||||
# Using rust with functions
|
||||
|
||||
The easiest way to create a function in rust is via ***cargo*** and ***fn***.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
First create an epty rust project as follows:
|
||||
|
||||
```bash
|
||||
cargo init --name func --bin
|
||||
```
|
||||
|
||||
Make sure the project name is ***func*** and is of type ***bin***. Now just edit your code, once done you can create a function.
|
||||
|
||||
## Creating a function
|
||||
|
||||
Simply run
|
||||
|
||||
```bash
|
||||
fn init --runtime=rust <username>/<funcname>
|
||||
```
|
||||
|
||||
This will create the ```func.yaml``` file required by functions, which can be built by running:
|
||||
|
||||
```bash
|
||||
fn build
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
fn run
|
||||
```
|
||||
@@ -1,10 +0,0 @@
|
||||
use std::io;
|
||||
use std::io::Read;
|
||||
|
||||
fn main() {
|
||||
let mut buffer = String::new();
|
||||
let stdin = io::stdin();
|
||||
if stdin.lock().read_to_string(&mut buffer).is_ok() {
|
||||
println!("Hello {}", buffer.trim());
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
for {
|
||||
res := http.Response{
|
||||
Proto: "HTTP/1.1",
|
||||
ProtoMajor: 1,
|
||||
ProtoMinor: 1,
|
||||
StatusCode: 200,
|
||||
Status: "OK",
|
||||
}
|
||||
|
||||
r := bufio.NewReader(os.Stdin)
|
||||
req, err := http.ReadRequest(r)
|
||||
|
||||
var buf bytes.Buffer
|
||||
if err != nil {
|
||||
res.StatusCode = 500
|
||||
res.Status = http.StatusText(res.StatusCode)
|
||||
fmt.Fprintln(&buf, err)
|
||||
} else {
|
||||
l, _ := strconv.Atoi(req.Header.Get("Content-Length"))
|
||||
p := make([]byte, l)
|
||||
r.Read(p)
|
||||
fmt.Fprintf(&buf, "Hello %s\n", p)
|
||||
for k, vs := range req.Header {
|
||||
fmt.Fprintf(&buf, "ENV: %s %#v\n", k, vs)
|
||||
}
|
||||
}
|
||||
|
||||
res.Body = ioutil.NopCloser(&buf)
|
||||
res.ContentLength = int64(buf.Len())
|
||||
res.Write(os.Stdout)
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{"route":{
|
||||
"app_name": "myapp",
|
||||
"path": "/hot",
|
||||
"image": "USERNAME/hchttp",
|
||||
"memory": 64,
|
||||
"type": "sync",
|
||||
"config": null,
|
||||
"format": "http"
|
||||
}}
|
||||
11
fn/init.go
11
fn/init.go
@@ -17,8 +17,8 @@ import (
|
||||
|
||||
"strings"
|
||||
|
||||
"gitlab.oracledx.com/odx/functions/fn/langs"
|
||||
"github.com/urfave/cli"
|
||||
"gitlab.oracledx.com/odx/functions/fn/langs"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -157,9 +157,10 @@ func (a *initFnCmd) buildFuncFile(c *cli.Context) error {
|
||||
return err
|
||||
}
|
||||
a.runtime = rt
|
||||
fmt.Printf("assuming %v runtime\n", rt)
|
||||
fmt.Printf("Found %v, assuming %v runtime.\n", rt, rt)
|
||||
} else {
|
||||
fmt.Println("Runtime:", a.runtime)
|
||||
}
|
||||
fmt.Println("runtime:", a.runtime)
|
||||
if _, ok := acceptableFnRuntimes[a.runtime]; !ok {
|
||||
return fmt.Errorf("init does not support the %s runtime, you'll have to create your own Dockerfile for this function", a.runtime)
|
||||
}
|
||||
@@ -180,7 +181,7 @@ func (a *initFnCmd) buildFuncFile(c *cli.Context) error {
|
||||
}
|
||||
}
|
||||
if a.entrypoint == "" && a.cmd == "" {
|
||||
return fmt.Errorf("could not detect entrypoint or cmd for %v, use --entrypoint and/or --cmd to set them explicitly", a.runtime)
|
||||
return fmt.Errorf("Could not detect entrypoint or cmd for %v, use --entrypoint and/or --cmd to set them explicitly", a.runtime)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -193,5 +194,5 @@ func detectRuntime(path string) (runtime string, err error) {
|
||||
return runtime, nil
|
||||
}
|
||||
}
|
||||
return "", fmt.Errorf("no supported files found to guess runtime, please set runtime explicitly with --runtime flag")
|
||||
return "", fmt.Errorf("No supported files found to guess runtime, please set runtime explicitly with --runtime flag")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user