170 похожих чатов

Подскажите пожалуйста по джину. Пытаюсь стартовать приложение с помощью компоуза

и оттуда запускаю докерфайл вида:

FROM golang:latest as run
WORKDIR /app
RUN go install github.com/codegangsta/gin@latest
COPY . .
RUN go mod download
WORKDIR /app/cmd/app
EXPOSE 4000
ENTRYPOINT gin --appPort 3000 --all -i run main.go

так получается что джин перебилживает приложение только если изменяю main, но у меня не только main, а несколько гошных пакетов

То есть задача стоит в том, чтобы сделать докерфайл, который билдит приложение при каждом изменении его кода, live-reload сервер то есть.

Как заставить GIN смотреть на все гошные файлы?

Или может у кого есть готовые докерфайлы для разработки на го, тогда вопрос снимается.

пробовал через CompileDaemon, но пока что не получилось его завести, этот негодяй ругается на то что не видит compiledemon когда стартует точку входа

FROM golang:latest
WORKDIR /app
COPY ./ /app
RUN go mod download
RUN go get github.com/githubnemo/CompileDaemon
ENTRYPOINT CompileDaemon --build="go build commands/runserver.go" --command=./runserver

8 ответов

33 просмотра

"билдит приложение при каждом изменении его кода" - то есть во время написание кода сервер будет постоянно пытаться пересобраться и валиться с ошибками сборки?

на вопрос не отвечу, из любопытсва хотел бы спросить. А для чего такое? Почему например не пилить фичу локально, проверить, а после проверить 1 раз в докере?

Vyacheslav- Автор вопроса
Dmitriy Sviridov
"билдит приложение при каждом изменении его кода" ...

ну то есть я написал код, жму сохранить, он перебилдил вновь быстро и можно глянуть что там в браузере, а не искать мэин и жать на квадраты и треугольники бесконечно (я в vscode) в общем хочу организовать что-то вроде nodemon, который стартует в докере или по хоткею тоже наверно нормально будет, поищу такие варианты подумаю тогда

твой братишка
https://github.com/cosmtrek/air вот такая штука е...

и вот еще https://github.com/codegangsta/gin нашел в звездах на гитхабе ничего из этого не пробовал, не могу ничего конкретнее сказать

Vyacheslav- Автор вопроса
твой братишка
и вот еще https://github.com/codegangsta/gin нашел...

да, я это попробовал, работает отлично, но работало лишь на изменение в мэин а главное никаких конфигурационных файлов которые требует эир но кажется я догадался, видать надо ключ дописать: -all проверю теорию завтра, но почти уверен что это решит.

Vyacheslav
да, я это попробовал, работает отлично, но работал...

--all reloads whenever any file changes, as opposed to reloading only on .go file change думаю да но я бы остановился на эире, наверное. он поживее будет, и популярнее

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта