Невозможно развернуть Go в Oracle Cloud Function с помощью Cloud Shell

Я попытался создать и развернуть функции Oracle Cloud, следуя официальные инструкции по документации. Я могу создавать и развертывать, используя среду выполнения java, но когда я развертываю среду выполнения, всегда возвращаю ошибку.

Я попытался запустить функцию Go с помощью этой команды в Oracle Cloud Shell:

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, она успешно развернута. Почему всегда происходит сбой при использовании go?

Я попытался запустить go build -o func в каталоге hello-go, но он вернул:

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. (на основе этого ответа)

См. также:  RuntimeError: цикл событий закрывается при попытке выполнить запрос https с помощью aiohttp

Возможно, я смогу это сделать, если использую настоящую оболочку виртуальной машины или локальную оболочку / терминал, но я хочу использовать Oracle Cloud Shell, потому что я просто выполнил официальные инструкции, которые предложили мне использовать Oracle Cloud Shell, поэтому как развернуть Oracle Cloud Functions с помощью среды выполнения Go, используя Oracle Cloud Shell?

В основном официальная документация дает только примеры с использованием среды выполнения Java, что делает меня параноиком при использовании go.

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Muhammad Dyas Yaskur

    Это ошибка в облачной оболочке, которую мы пытаемся решить наилучшим образом.

    В качестве краткосрочного обходного пути вы можете сделать это один раз:

    mkdir ${HOME}/gopath
    

    Затем установите это в своем терминале:

    export GOPATH=${HOME}/gopath
    

    Вероятно, вам следует отредактировать файл ~ / .bashrc, чтобы автоматически установить переменную GOPATH, чтобы вы не забыли

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: