53 lines
1.5 KiB
Docker
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"]
|