Files
go-lcg/Dockerfiles/OllamaServer/Dockerfile
2025-11-08 16:04:17 +06:00

79 lines
2.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 []