Function 无法使用Cloud Shell在Oracle云函数中部署Go

Function 无法使用Cloud Shell在Oracle云函数中部署Go,function,go,oracle-cloud-infrastructure,oracle-cloud-functions,oracle-cloud-shell,Function,Go,Oracle Cloud Infrastructure,Oracle Cloud Functions,Oracle Cloud Shell,我尝试按照以下步骤创建和部署Oracle云功能。我可以使用java运行时创建和部署,但部署go运行时总是返回错误 我尝试在Oracle Cloud Shell中使用以下命令初始化Go函数: fn init --runtime go hello-go 然后我试着部署它 fn -v deploy --app test 但它返回如下错误: Deploying hello-go to app: test Bumped to version 0.0.7 Building image bom.ocir.

我尝试按照以下步骤创建和部署Oracle云功能。我可以使用java运行时创建和部署,但部署go运行时总是返回错误

我尝试在Oracle Cloud Shell中使用以下命令初始化Go函数:

fn init --runtime go hello-go
然后我试着部署它

fn -v deploy --app test
但它返回如下错误:

Deploying hello-go to app: test
Bumped to version 0.0.7
Building image bom.ocir.io/bmptwl2psusa/repo/hello-go:0.0.7 
FN_REGISTRY:  bom.ocir.io/bmptwl2psusa/repo
Current Context:  ap-mumbai-1
Sending build context to Docker daemon  5.632kB
Step 1/10 : FROM fnproject/go:dev as build-stage
 ---> 96c8fb94a8e1
Step 2/10 : WORKDIR /function
 ---> Using cache
 ---> 8961dd299ec1
Step 3/10 : WORKDIR /go/src/func/
 ---> Using cache
 ---> 5a4c2c6e13f1
Step 4/10 : ENV GO111MODULE=on
 ---> Using cache
 ---> 22022ff2fcf8
Step 5/10 : COPY . .
 ---> 714622a6ff03
Step 6/10 : RUN cd /go/src/func/ && go build -o func
 ---> Running in 39fedbc476f4
build func: cannot find module for path github.com/fnproject/fdk-go
The command '/bin/sh -c cd /go/src/func/ && go build -o func' returned a non-zero code: 1


Fn: error running docker build: exit status 1
当我使用java runtime和
fn init--runtime java hello java
命令时,它已成功部署,为什么在使用go时总是失败

我试图在
hello go
目录中运行
go build-o func
,但返回:

go: finding module for package github.com/fnproject/fdk-go
go: writing stat cache: mkdir /usr/share/gocode/pkg: permission denied
go: downloading github.com/fnproject/fdk-go v0.0.3
func.go:10:2: mkdir /usr/share/gocode/pkg: permission denied
我知道这是因为
/usr/share/gocode/
目录位于root用户下,但我不知道如何更改该文件夹的权限,因为Oracle Cloud Shell无法使用root用户或sudo。(基于)

如果我使用真正的VM外壳或本地外壳/终端,也许我可以做到这一点,但我想使用Oracle Cloud外壳,因为我只是按照官方指示建议我使用Oracle Cloud外壳,那么如何使用Oracle Cloud外壳在Go runtime中部署Oracle云函数呢


大多数官方文档只给出了使用Java运行时的示例,这让我在使用go时产生了妄想症。

这是cloudshell中的一个bug,我们正在找出解决它的最佳方法

作为短期解决办法,您可以执行一次:

mkdir ${HOME}/gopath
然后在终端中设置:

export GOPATH=${HOME}/gopath

您可能应该编辑~/.bashrc以自动设置GOPATH变量,这样您就不会忘记

这是cloudshell中的一个bug,我们正在找出最佳解决方法

作为短期解决办法,您可以执行一次:

mkdir ${HOME}/gopath
然后在终端中设置:

export GOPATH=${HOME}/gopath
您可能应该编辑~/.bashrc以自动设置GOPATH变量,这样您就不会忘记了