Compare commits

..

6 Commits

2 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
# --- Этап 1: Сборка (Builder) ---
FROM golang:1.24-alpine AS builder
WORKDIR /app
# Копируем файлы go.mod и go.sum для загрузки зависимостей
# Копируем файлы go.mod и go.sum для загрузки зависимостей
COPY go.mod go.sum ./
ENV GOPROXY=direct
RUN apk add --no-cache git
RUN go mod download
# Копируем весь остальной исходный код
COPY . .
# Собираем приложение. На этот раз точка входа - корень проекта.
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/ping-helper -ldflags="-w -s" .
# --- Этап 2: Финальный образ (Final) ---
FROM alpine:latest
WORKDIR /app
# Копируем только скомпилированный бинарник из этапа сборки
COPY --from=builder /app/ping-helper .
# Добавляем сертификаты
RUN apk --no-cache add ca-certificates
# Запускаем от имени непривилегированного пользователя
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
# Указываем, что контейнер будет слушать порт 8081
EXPOSE 8081
# Команда для запуска нашего приложения
ENTRYPOINT ["/app/ping-helper"]

11
README.md Normal file
View File

@@ -0,0 +1,11 @@
# Ping Helper (Go)
Это легковесный WebSocket-сервер на Go.
## Назначение
Реализует простой "эхо-протокол". Фронтенд отправляет на него метку времени, сервис немедленно возвращает ее обратно. Это позволяет измерить сетевую задержку (пинг) между браузером клиента и сервером.
## Запуск
Сервер запускается командой `go run main.go` и слушает порт `8081`.