sub2api/deploy/lsworker.Dockerfile
win 0cda0e0b96
Some checks failed
CI / test (push) Failing after 8s
CI / golangci-lint (push) Failing after 5s
Security Scan / backend-security (push) Failing after 7s
Security Scan / frontend-security (push) Failing after 6s
feat: add dockerized antigravity ls worker mode
2026-03-30 23:57:25 +08:00

53 lines
1.5 KiB
Docker

ARG GOLANG_IMAGE=golang:1.26.1-alpine
ARG DEBIAN_IMAGE=debian:bookworm-slim
FROM ${GOLANG_IMAGE} AS builder
WORKDIR /app/backend
RUN apk add --no-cache git ca-certificates tzdata
COPY backend/go.mod backend/go.sum ./
RUN go mod download
COPY backend/ ./
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /app/lsworker ./cmd/lsworker
FROM ${DEBIAN_IMAGE}
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gosu \
iproute2 \
iptables \
redsocks \
tzdata \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd -g 1000 sub2api && \
useradd -u 1000 -g sub2api -m -s /bin/sh sub2api
WORKDIR /app
COPY --from=builder /app/lsworker /app/lsworker
COPY deploy/ls-bin/language_server_linux_* /tmp/ls-bin/
COPY deploy/ls-bin/cert.pem /app/ls/extensions/antigravity/dist/languageServer/
ARG TARGETARCH
RUN mkdir -p /app/ls/extensions/antigravity/bin /run/lsworker && \
if [ "${TARGETARCH:-amd64}" = "arm64" ]; then \
cp /tmp/ls-bin/language_server_linux_arm /app/ls/extensions/antigravity/bin/language_server_linux_arm; \
else \
cp /tmp/ls-bin/language_server_linux_x64 /app/ls/extensions/antigravity/bin/language_server_linux_x64; \
fi && \
chmod +x /app/lsworker /app/ls/extensions/antigravity/bin/language_server_linux_* && \
chown -R sub2api:sub2api /app /run/lsworker && \
rm -rf /tmp/ls-bin
COPY deploy/lsworker-entrypoint.sh /app/lsworker-entrypoint.sh
RUN chmod +x /app/lsworker-entrypoint.sh
EXPOSE 18081
ENTRYPOINT ["/app/lsworker-entrypoint.sh"]