v1.0.0: health: add a simple healthcheck
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
82a3ced276
commit
c78316301f
2 changed files with 32 additions and 1 deletions
14
Dockerfile
14
Dockerfile
|
|
@ -1,5 +1,12 @@
|
|||
FROM golang:1.21-alpine AS develop
|
||||
|
||||
# Changement du répertoire de travail
|
||||
WORKDIR /
|
||||
|
||||
RUN apk update && apk add --no-cache curl tar && \
|
||||
curl -O https://gitlab.g3e.fr/api/v4/projects/34/packages/generic/minicurl/v1.0.0/minicurl_linux_amd64.tar.gz && \
|
||||
tar xzvf minicurl_linux_amd64.tar.gz
|
||||
|
||||
# Changement du répertoire de travail
|
||||
WORKDIR /app
|
||||
|
||||
|
|
@ -7,6 +14,9 @@ WORKDIR /app
|
|||
COPY go.mod go.sum ./
|
||||
RUN go mod download && go mod verify
|
||||
|
||||
ENV PORT=1222
|
||||
HEALTHCHECK --interval=1s --timeout=30s --start-period=5s --retries=3 CMD [ "/minicurl" ]
|
||||
|
||||
COPY . .
|
||||
|
||||
CMD ["sh", "-c", "echo 'run application' && go run ./cmd/"]
|
||||
|
|
@ -18,7 +28,11 @@ RUN CGO_ENABLED=0 go build -o ./build/app ./cmd/
|
|||
FROM scratch AS release
|
||||
|
||||
COPY --from=build /app/build/app /exec
|
||||
COPY --from=develop /minicurl /minicurl
|
||||
|
||||
EXPOSE 1222
|
||||
|
||||
ENV PORT=1222
|
||||
HEALTHCHECK --interval=1s --timeout=30s --start-period=5s --retries=3 CMD [ "/minicurl" ]
|
||||
|
||||
ENTRYPOINT ["/exec"]
|
||||
19
cmd/main.go
19
cmd/main.go
|
|
@ -23,6 +23,10 @@ func isLoggedIn(c echo.Context) error {
|
|||
return c.NoContent(http.StatusNoContent)
|
||||
}
|
||||
|
||||
func health(c echo.Context) error {
|
||||
return c.NoContent(http.StatusOK)
|
||||
}
|
||||
|
||||
func init_database() {
|
||||
var err error
|
||||
|
||||
|
|
@ -38,6 +42,16 @@ func skip_auth(c echo.Context) bool {
|
|||
if c.Request().Method == "POST" && c.Path() == "/" {
|
||||
return true
|
||||
}
|
||||
if c.Request().Method == "GET" && c.Path() == "/health" {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func skip_log(c echo.Context) bool {
|
||||
if c.Request().Method == "GET" && c.Path() == "/health" {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +64,9 @@ func main() {
|
|||
e := echo.New()
|
||||
|
||||
// Middleware
|
||||
e.Use(middleware.Logger())
|
||||
e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{
|
||||
Skipper: skip_log,
|
||||
}))
|
||||
e.Use(middleware.Recover())
|
||||
e.Use(middleware.CORS())
|
||||
e.Use(lib.AuthMiddleware(skip_auth))
|
||||
|
|
@ -59,6 +75,7 @@ func main() {
|
|||
e.GET("/", isLoggedIn)
|
||||
e.POST("/", login)
|
||||
e.DELETE("/", logout)
|
||||
e.GET("/health", health)
|
||||
|
||||
// Start server
|
||||
e.Logger.Fatal(e.Start(":1222"))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue