Size: a a a

2020 July 02

ВС

Владимир Столяров... in Go-go!
если без CGO_ENABLED=0 и у дистрибутивов разные стандартные либы, то вполне возможно такое
источник

A1

Art 141 in Go-go!
Локоть Анатолий
Почему просто либу не взять?
https://github.com/subchen/go-trylock
Чужую либу то всегда можно взять. Вопрос в том нужна ли она в этом случае. Мне казалось это довольно стандартной вещью, которая должна просто делаться без сторонних библиотек.
источник

ЛА

Локоть Анатолий... in Go-go!
Art 141
Чужую либу то всегда можно взять. Вопрос в том нужна ли она в этом случае. Мне казалось это довольно стандартной вещью, которая должна просто делаться без сторонних библиотек.
Наличие либы говорит об отсутствии данной возможности из коробки
источник

ЛА

Локоть Анатолий... in Go-go!
Andrew (backEnd)
А билды го из одного линукса на другом не работают?
Если архитектура одна , то должно работать везде.
Но как сказал @expxakep , могут быть динамические зависимости, которые можно посмотреть через ldd ./binary

Если собрать статически, те
CGO_ENABLED=0 GOOS=linux go build -ldflags "-s -w -extldflags '-static'" -o ./app

То бинарник будет самодостаточен
источник

A(

Andrew (backEnd) in Go-go!
Владимир Столяров
если без CGO_ENABLED=0 и у дистрибутивов разные стандартные либы, то вполне возможно такое
ну вообще я сбилдил в одном и том же дистрибутиве (контейнере golang:1.13.6-alpine)
Один собран в винде (внутри контейнера конечно же) и потом на линуксе в этом же контейнере запущен. В винде прокнало этот билд потом запускать. А на лине - нет. Хотя в теории то приложения изолированы
И выходит ошибка
ERROR: for backend  Cannot start service backend: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/bin/backend\": permission denied": unknown
ERROR: Encountered errors while bringing up the project.
источник

ЛА

Локоть Анатолий... in Go-go!
Andrew (backEnd)
ну вообще я сбилдил в одном и том же дистрибутиве (контейнере golang:1.13.6-alpine)
Один собран в винде (внутри контейнера конечно же) и потом на линуксе в этом же контейнере запущен. В винде прокнало этот билд потом запускать. А на лине - нет. Хотя в теории то приложения изолированы
И выходит ошибка
ERROR: for backend  Cannot start service backend: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/bin/backend\": permission denied": unknown
ERROR: Encountered errors while bringing up the project.
Go build в студию и лучше сразу привести его к виду выше
источник

A(

Andrew (backEnd) in Go-go!
go build -o /bin/backend main.go
источник

A(

Andrew (backEnd) in Go-go!
попробую собрать с примером и повторить
источник

ЛА

Локоть Анатолий... in Go-go!
Andrew (backEnd)
попробую собрать с примером и повторить
Ага, ещё можете там, где не работает, сделать ldd
источник

ЛА

Локоть Анатолий... in Go-go!
Но по ошибке permission denied я не уверен, что ошибка в этом
источник

A(

Andrew (backEnd) in Go-go!
Локоть Анатолий
Ага, ещё можете там, где не работает, сделать ldd
контейнер не поднимается из-за ошибки, внутри неподнятого контейнера не могу)
источник

ЛА

Локоть Анатолий... in Go-go!
Andrew (backEnd)
контейнер не поднимается из-за ошибки, внутри неподнятого контейнера не могу)
Запустите с кастомным энтрипоинтом, sh/bash вместо вашего. Если он какой-нибудь alpine
источник

A(

Andrew (backEnd) in Go-go!
а, ну точно. окей
источник

ЛА

Локоть Анатолий... in Go-go!
Локоть Анатолий
Запустите с кастомным энтрипоинтом, sh/bash вместо вашего. Если он какой-нибудь alpine
источник

Д

Данил in Go-go!
Слуушайте, никто не знает почему может выдавать grpc: the client connection is closing?

Это мейн сервера:
func main() {

 logger := logrus.New()

 listener, err := net.Listen("tcp", ":5300")
 if err != nil {
   logger.Panic("Failed to listen: %v", err)
 }

 grpcServer := grpc.NewServer()

 notify.RegisterNotifyServer(grpcServer, &Notify{})

 if err := grpcServer.Serve(listener); err != nil {
   logger.Panic("Failed to serve: %s", err)
 }
}
источник

Д

Данил in Go-go!
Это создание клиента
источник

Д

Данил in Go-go!
func CreateGrpcClient(connectAddr string) (*NotifyClient, error) {
 opts := []grpc.DialOption{
   grpc.WithInsecure(),
 }
 conn, err := grpc.Dial(connectAddr, opts...)

 if err != nil {
   return nil, err
 }

 defer conn.Close()

 client := NewNotifyClient(conn)

 return &client, nil

}
источник

Д

Данил in Go-go!
Это реквест
источник

SP

Slava Pinchuk in Go-go!
Приветствую!
раньше  я линтеры прикручивал вот так:
 #!/usr/bin/env bash
echo "golang-ci lint..."
golangci-lint run ./...

echo "gogroup..."
gogroup -order std,other,prefix=github.com/lithium555/SortMP3  $(find . -type f -name "*.go" | grep -v "vendor/")

а теперь у меня новая репа , доступ только по ssh
Вопрос: как тогда подтянуть туда линтеры ?
По старинке я не могу указать путь (((
источник

Д

Данил in Go-go!
func DoRequestSendNotify(client NotifyClient, request *NotifyRequest) (*NotifyResponse, error) {
 response, err := client.SendNotify(context.Background(), request)

 if err != nil {
   return nil, err
 }

 return response, nil
}
источник