繁体   English   中英

无法在 Oracle 云 Function 中使用云 ZEA89B68C34CE4A63C0F77EDE71Z 部署 Go

[英]Can not deploy Go in Oracle Cloud Function using Cloud Shell

我尝试按照官方文档说明创建和部署 Oracle 云功能。 我可以使用 java 运行时创建和部署,但是当我部署 go 运行时总是返回错误。

我尝试在 Oracle Cloud ZEA89B68C34CE4A63CE3077C 中使用此命令初始化 Go function:

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 运行时和fn init --runtime java hello-java命令时,它已成功部署,为什么使用 Z34D1F91FB2E514B8576FAB1A75A89A 时总是失败?

我试图在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。 (基于这个答案

Maybe I can do it if I use real VM shell or local shell/terminal, but I want to use Oracle Cloud Shell because I just followed official instructions that suggested me using Oracle Cloud Shell, so how to deploy Oracle Cloud Functions with Go runtime using Oracle 云 Shell?

大多数官方文档只给出了使用 Java 运行时的示例,这让我在使用 go 时变得偏执。

这是 cloudshell 中的一个错误,我们正在寻找解决的最佳方法。

作为一种短期解决方法,您可以这样做一次:

mkdir ${HOME}/gopath

然后在终端中设置:

export GOPATH=${HOME}/gopath

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM