и оттуда запускаю докерфайл вида:
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
"билдит приложение при каждом изменении его кода" - то есть во время написание кода сервер будет постоянно пытаться пересобраться и валиться с ошибками сборки?
на вопрос не отвечу, из любопытсва хотел бы спросить. А для чего такое? Почему например не пилить фичу локально, проверить, а после проверить 1 раз в докере?
ну то есть я написал код, жму сохранить, он перебилдил вновь быстро и можно глянуть что там в браузере, а не искать мэин и жать на квадраты и треугольники бесконечно (я в vscode) в общем хочу организовать что-то вроде nodemon, который стартует в докере или по хоткею тоже наверно нормально будет, поищу такие варианты подумаю тогда
https://github.com/cosmtrek/air вот такая штука еще есть
и вот еще https://github.com/codegangsta/gin нашел в звездах на гитхабе ничего из этого не пробовал, не могу ничего конкретнее сказать
да, я это попробовал, работает отлично, но работало лишь на изменение в мэин а главное никаких конфигурационных файлов которые требует эир но кажется я догадался, видать надо ключ дописать: -all проверю теорию завтра, но почти уверен что это решит.
--all reloads whenever any file changes, as opposed to reloading only on .go file change думаю да но я бы остановился на эире, наверное. он поживее будет, и популярнее
Обсуждают сегодня