mirror of
https://github.com/batonogov/learn-devops.git
synced 2026-01-20 22:11:02 +00:00
Add docker (#6)
* Add docker * Update example --------- Co-authored-by: Fedor Batonogov <f.batonogov@yandex.ru>
This commit is contained in:
committed by
GitHub
parent
fab1ba15f3
commit
99088532f2
19
docker/Dockerfile
Normal file
19
docker/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
# Используем официальный образ Golang
|
||||
FROM docker.io/library/golang:1.22.2-alpine AS builder
|
||||
# Устанавливаем рабочую директорию
|
||||
WORKDIR /build
|
||||
# Копируем исходный код приложения в контейнер
|
||||
COPY ./ ./
|
||||
RUN CGO_ENABLED=0 go build main.go
|
||||
|
||||
# Отдельный этап сборки для уменьшения размера образа
|
||||
FROM docker.io/library/alpine:3.19.1 AS runner
|
||||
# Устанавливаем рабочую директорию
|
||||
WORKDIR /app
|
||||
# Копируем скомпилированное приложение из предыдущего этапа
|
||||
COPY --from=builder /build/main ./
|
||||
# Запускаем healthcheck, проверяющий доступность веб-сервера на порту 8080
|
||||
HEALTHCHECK --interval=5s --timeout=5s --start-period=3s --retries=3 \
|
||||
CMD wget --quiet --tries=1 --spider http://localhost:8080/ || exit 1
|
||||
# Запускаем приложение при старте контейнера
|
||||
CMD ["./main"]
|
||||
Reference in New Issue
Block a user