@gogolang

Страница 234 из 1630
Aleksander
20.04.2017
19:02:25
все норм. получилось

спасибо

Еще один вопрос возник) Если у меня на сервере крутятся несколько разных доменов, которые используют 80 порт. Каждый сайт будет отдельным приложением. Через Apache раньше все работало для такой инфраструктуры. А как мне в go сделать чтобы они правильно работали?

Phil
20.04.2017
21:47:17
Чтобы "крутились"? ))))))))))))

Google
Constantine
20.04.2017
21:48:25
портами разруливай

Slava
20.04.2017
21:51:18
нужен прокси, который умеет http разруливать, к примеру nginx

а все программы уже на своих портах/сокетах

есть реверс прокси и на го хороший https://github.com/containous/traefik

это если нужно что посложнее =)

Aleksander
20.04.2017
21:56:17
нужен прокси, который умеет http разруливать, к примеру nginx
Спасибо. Nginx тоже первое, что в голову пришло. Думал, что без посредников можно сделать.

Slava
20.04.2017
22:01:29
можно, если держать по интерфейсу на программу, а днс резолвить в интерфейс

но это.. странно

Dmitry
21.04.2017
08:06:46
У меня задача сделать проксирование входящих запросов на определённые url'ы по некоторой логике. К примеру, на входящий запрос /service/data делаю запрос на нужный url+"/data" и ответ от него передаю в ответ. Как элегантно сделать что-то наподобие ResponseWriter.Write(resp)?

Dmitriy
21.04.2017
08:25:46
io.Copy ?

Dmitry
21.04.2017
08:28:11
Кроме тела ещё заголовки, статус.

Dmitriy
21.04.2017
08:30:27
Имхо, тогда нужно лезть глубже, т.е. не пользоваться оберткой http.Handler и тогда можно будет копипастить со всем-всем. Однако, затраты на реализацию, имхо, будут сложнее, чем простой io.Copy + парсинг хидеров

Dmitry
21.04.2017
08:31:53
OK, спасибо.

Google
Максим
21.04.2017
09:02:06
Кто-то docker golang использовал?

/dev/m
21.04.2017
09:05:35
Кто-то docker golang использовал?
ты, наверное, хотел сказать moby golang?

а так, я юзаю

Максим
21.04.2017
09:07:07
ты, наверное, хотел сказать moby golang?
я так и не въехал, переименовали ли Docker в Moby или это отдельная тема какая-то

а так, я юзаю
вопрос в следующем. Создаю контейнер, прокидываю, скачиваю библиотеки, делаю go install. Вроде все собирается, но запустить не удается

/dev/m
21.04.2017
09:10:12
для запуска лучше собирать образ на scratch. Добавив туда скомпилированную программу и указав entrypoint

Максим
21.04.2017
09:11:40
а в чем отличие scretch? пока не смотрел Dockerfile

Aleksandr
21.04.2017
09:12:29
а в чем отличие scretch? пока не смотрел Dockerfile
это просто голый образ без всего. образ го достаточно тяжелый, чтобы с его помощью дистрибьютить апп

Максим
21.04.2017
09:13:55
@zelenin Так. С помощью него создаю контейнер. И дальше выполняю те же команды что я указывал в другом чате?

судя по документации прокидываем все в /go/src/app, затем go get -v app и после go install -v app

Aleksandr
21.04.2017
09:15:11
go build -o app

app билдишь в диру на хост

потом с хоста забираешь в другой образ

Максим
21.04.2017
09:16:03
то есть получается билдим в одном контейнере, а запускаем в другом?

Aleksandr
21.04.2017
09:17:33
да

docker run —rm -v "$PWD":/go -w /go/src -e CGO_ENABLED=0 golang go build -o "app"

что-то такое

Максим
21.04.2017
09:18:31
да
для билда используем golang:1.8, а для запуска golang:1.8-stretch?

Aleksandr
21.04.2017
09:18:36
ну что значит запускаем? дистрибьютмм на продакшн

для билда используем golang:1.8, а для запуска golang:1.8-stretch?
для запуска scratch - это просто голый образ, не го. я использую alpine - linux c небольшим обвесом на 5 мб

Google
Максим
21.04.2017
09:20:45
@zelenin пример организации сего есть?))

Aleksandr
21.04.2017
09:23:12
@zelenin пример организации сего есть?))
у меня свой registry, так что подставь правильные названия образов docker run --rm -v "$PWD":/go -w /go/src ${registryHost}/go:1.8.0-2 go build -o "../build/app" Dockerfile: FROM docker.****:443/alpine:3.5-1 MAINTAINER Aleksandr Zelenin <aleksandr@zelenin.me> ENV PATH /app:$PATH RUN mkdir -p /app COPY app /app WORKDIR /app CMD ["app"]

Максим
21.04.2017
09:24:23
а официальный golang:1.8-alpine не подошел?

Aleksandr
21.04.2017
09:25:23
а официальный golang:1.8-alpine не подошел?
это go на базе alpine, а нам go не нужен для запуска бинарника. а весит оно 200 мб вроде против 5

то есть билдить им можно и нужно, а класть бинарник уже в голый alpine/scratch

Максим
21.04.2017
09:28:49
Сейчас попробую

@zelenin спасибо

/dev/m
21.04.2017
09:29:56
/dev/m
21.04.2017
09:31:01
и можно всё сократить до: FROM scratch COPY ./app / ENTRYPOINT ["/app"]

@zavitaev

Aleksandr
21.04.2017
09:32:18
и можно всё сократить до: FROM scratch COPY ./app / ENTRYPOINT ["/app"]
в корень мусорить не хочется, хоть и пох.

/dev/m
21.04.2017
09:32:45
Aleksandr
21.04.2017
09:34:42
краткость сестра таланта
более длинно, не потому что хочется, а потому что есть обоснование. писать более кратко, забив на обоснование, нельзя.

Nikolay добряш
21.04.2017
11:45:03
ребят можно вопрос по goglang от джетбрейнов задать? это идешка ихняя



Cyril
21.04.2017
11:46:49
нужно писать код не пересекая её

Semyon
21.04.2017
11:47:09
Это голос совести

слушай его

Олег
21.04.2017
11:47:24
Если пересечь - в мире умрет один щенок

Google
Nikolay добряш
21.04.2017
11:47:38
?защита от былокодинга?

Semyon
21.04.2017
11:47:47
это рулер ограничивающий длину строки

Nikolay добряш
21.04.2017
11:47:52
он не ограничивает

я пробовал

Semyon
21.04.2017
11:47:56
потому что, судя по всему, у тебя огромный монитор и отличное зрение

Nikolay добряш
21.04.2017
11:48:11
обычный фулхд

Konstantine
21.04.2017
11:48:40
Реализовал авторизацию в либо по ВК, теперь можно поделиться и услышать критику: https://github.com/SolidlSnake/easyvk-go

Олег
21.04.2017
11:48:58
он не ограничивает
Это просто метка для удобства. Считается, что если строки не длиннее 80 символов, код легче читается.

Nikolay добряш
21.04.2017
11:49:31
Semyon
21.04.2017
11:49:31
обычный фулхд
ну вот у меня 4k

код выглядит так



Aleksandr
21.04.2017
11:49:40
это ограничитель на 80 символов - кол-во символов в консоли в дремучие времена. теперь как бест практайс в код стайле

Semyon
21.04.2017
11:49:50
прикинь теперь число символов, которое влезет на экран у тебя и у меня

Nikolay добряш
21.04.2017
11:49:53
вим

Semyon
21.04.2017
11:50:19
и вот чтобы мы с тобой не подрались редактируя один и тот же код, пацаны придумали правило

строка должна быть не длиннее 80 символов

чтобы она влезала даже на экран утюга

Nikolay добряш
21.04.2017
11:50:46
всё догнал, а как нить её задействовать нельзя? что бы она не только визуальной была но и функциональной

а том ало ли что

Google
Nikolay добряш
21.04.2017
11:50:55
пропрет что нить нагошить

Semyon
21.04.2017
11:51:08
Нащот этой ИДЕ не знаю

Nikolay добряш
21.04.2017
11:51:08
или пришлют код с длиной строки в 2048 сиоволов

Semyon
21.04.2017
11:51:25
но много где можно красить строчку красной, если она вылезла

честно говоря, я почти везде на своих проектах ставлю рулер не на 80, а на 120 символов

проявляю слабость, так сказать

некоторые языки в 80 символов просто хрен упихнёшь

Nikolay добряш
21.04.2017
11:53:11
че там в гошечке то новго глобального? а то я подзавис на 1.3 версии а щас ставил уже 1.8.1

Aleksandr
21.04.2017
11:53:48
на самом деле это чисто легаси правило, т.к. большинство иде и редакторов имеют софт переносы и длинная строка не создает неудобства (не требует промотки экрана)

Dmitry
21.04.2017
13:13:13
Дайте, пожалуйста, ссылку на быстрый json-маршаллер.

Илья
21.04.2017
13:13:56
easyjson?

https://github.com/mailru/easyjson

Dmitry
21.04.2017
13:15:14
?

Vladimir
21.04.2017
14:39:05
Лучше уж разбить на пакеты и принимать первым аргументом инстанс клиента.

Так и тесты будет писать проще.

Страница 234 из 1630