mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 01:29:55 +00:00
79 lines
2.3 KiB
Docker
79 lines
2.3 KiB
Docker
# Multi-stage build для LCG с Ollama
|
||
FROM golang:1.24.6-alpine3.22 AS builder
|
||
|
||
WORKDIR /build
|
||
|
||
# Копируем файлы зависимостей
|
||
COPY go.mod go.sum ./
|
||
RUN go mod download
|
||
|
||
# Копируем исходный код
|
||
COPY . .
|
||
|
||
# Собираем бинарник
|
||
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s -buildid=" -trimpath -o /build/lcg .
|
||
|
||
# Финальный образ с Ollama
|
||
FROM alpine:3.22
|
||
|
||
# Устанавливаем необходимые пакеты
|
||
RUN apk add --no-cache \
|
||
curl \
|
||
ca-certificates \
|
||
bash \
|
||
&& rm -rf /var/cache/apk/*
|
||
|
||
# Устанавливаем Ollama 0.9.5 (поддержка разных архитектур)
|
||
ARG TARGETARCH
|
||
RUN case ${TARGETARCH} in \
|
||
amd64) OLLAMA_ARCH=amd64 ;; \
|
||
arm64) OLLAMA_ARCH=arm64 ;; \
|
||
arm) OLLAMA_ARCH=arm64 ;; \
|
||
*) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
|
||
esac && \
|
||
curl -L https://github.com/ollama/ollama/releases/download/v0.9.5/ollama-linux-${OLLAMA_ARCH} -o /usr/local/bin/ollama \
|
||
&& chmod +x /usr/local/bin/ollama
|
||
|
||
# Создаем пользователя для запуска сервисов
|
||
RUN addgroup -g 1000 ollama && \
|
||
adduser -D -u 1000 -G ollama ollama && \
|
||
mkdir -p /home/ollama/.ollama && \
|
||
chown -R ollama:ollama /home/ollama
|
||
|
||
# Копируем бинарник lcg
|
||
COPY --from=builder /build/lcg /usr/local/bin/lcg
|
||
RUN chmod +x /usr/local/bin/lcg
|
||
|
||
# Копируем entrypoint скрипт
|
||
COPY --chmod=755 Dockerfiles/OllamaServer/entrypoint.sh /entrypoint.sh
|
||
|
||
# Создаем директории для данных
|
||
RUN mkdir -p /app/data/results /app/data/prompts /app/data/config \
|
||
&& chown -R ollama:ollama /app/data
|
||
|
||
# Настройки по умолчанию
|
||
ENV LCG_PROVIDER=ollama
|
||
ENV LCG_HOST=http://127.0.0.1:11434/
|
||
ENV LCG_MODEL=codegeex4
|
||
ENV LCG_RESULT_FOLDER=/app/data/results
|
||
ENV LCG_PROMPT_FOLDER=/app/data/prompts
|
||
ENV LCG_CONFIG_FOLDER=/app/data/config
|
||
ENV LCG_SERVER_HOST=0.0.0.0
|
||
ENV LCG_SERVER_PORT=8080
|
||
ENV LCG_SERVER_ALLOW_HTTP=true
|
||
ENV OLLAMA_HOST=0.0.0.0
|
||
ENV OLLAMA_PORT=11434
|
||
|
||
# Expose порты
|
||
EXPOSE 8080 11434
|
||
|
||
# Переключаемся на пользователя ollama
|
||
USER ollama
|
||
|
||
WORKDIR /home/ollama
|
||
|
||
# Запускаем entrypoint
|
||
ENTRYPOINT ["/entrypoint.sh"]
|
||
CMD []
|
||
|