feat: publish standalone worker
Separate worker packaging and service lifecycle from the control plane.
Этот коммит содержится в:
37
Dockerfile
Обычный файл
37
Dockerfile
Обычный файл
@@ -0,0 +1,37 @@
|
||||
FROM reg.rsxx.ru/library/golang:1-trixie AS builder
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download && go mod verify
|
||||
|
||||
COPY . .
|
||||
|
||||
ARG VERSION=dev
|
||||
ARG COMMIT=unknown
|
||||
ARG BUILD_DATE=unknown
|
||||
RUN CGO_ENABLED=0 go build -trimpath \
|
||||
-ldflags="-s -w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.buildDate=${BUILD_DATE}" \
|
||||
-o /out/rsmon-worker ./cmd/rsmon-worker
|
||||
|
||||
FROM reg.rsxx.ru/library/debian:13-slim
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates chromium tzdata \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& groupadd --gid 10001 rsmon-worker \
|
||||
&& useradd --uid 10001 --gid rsmon-worker --home-dir /var/lib/rsmon-worker --create-home --shell /usr/sbin/nologin rsmon-worker
|
||||
|
||||
COPY --from=builder /out/rsmon-worker /usr/local/bin/rsmon-worker
|
||||
|
||||
ENV HOME=/var/lib/rsmon-worker \
|
||||
RSMON_WEBAPP_DATA_DIR=/var/lib/rsmon-worker/webapp
|
||||
|
||||
VOLUME ["/var/lib/rsmon-worker"]
|
||||
EXPOSE 27401 37401
|
||||
USER rsmon-worker
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
|
||||
CMD ["/usr/local/bin/rsmon-worker", "health"]
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/rsmon-worker"]
|
||||
Ссылка в новой задаче
Block a user