before stt adding

This commit is contained in:
2025-11-28 17:43:00 +06:00
parent fccafad6de
commit f933c315e8
17 changed files with 10002 additions and 672 deletions

77
Dockerfile copy Normal file
View File

@@ -0,0 +1,77 @@
# Multi-stage build для оптимизации размера образа
# Этап 1: Сборка Go приложения
FROM golang:1.25-alpine AS builder
WORKDIR /build
# Копирование go mod файлов
COPY go.mod ./
RUN go mod download
# Копирование исходного кода
COPY . .
# Сборка приложения
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o go-speech .
# Этап 2: Финальный образ с зависимостями
FROM alpine:latest
# RUN curl -L https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_amd64.tar.gz -o /tmp/piper.tar.gz
COPY piper.tar.gz /tmp/piper.tar.gz
# Установка необходимых пакетов
RUN apk add --no-cache \
ca-certificates \
ffmpeg \
curl \
bash \
libc6-compat \
libstdc++ \
rm -rf /var/lib/apt/lists/*
# Установка Piper TTS
RUN mkdir -p /opt/piper && \
cd /opt/piper && \
tar -xzf /tmp/piper.tar.gz && \
PIPER_BIN=$(find /opt/piper -name "piper" -type f | head -1) && \
chmod +x $PIPER_BIN && \
find /opt/piper -name "*.so*" -type f -exec chmod +x {} \; && \
ln -sf $PIPER_BIN /usr/local/bin/piper && \
rm -f /tmp/piper.tar.gz
# Создание директорий
RUN mkdir -p /app/models /app/certs /app/tmp
COPY models/ /app/models/
# Копирование бинарника из builder
COPY --from=builder /build/go-speech /app/go-speech
# Примечание: Модели должны быть смонтированы через volume при запуске контейнера
# Пример: -v $(pwd)/models:/app/models:ro
# Или скопированы в образ на этапе сборки, если они включены в репозиторий
# Рабочая директория
WORKDIR /app
# Переменные окружения по умолчанию
ENV PORT=8443
ENV PIPER_PATH=/usr/local/bin/piper
ENV PIPER_BIN_PATH=/opt/piper
ENV MODEL_DIR=/app/models
ENV GO_SPEECH_VOICE=ruslan
ENV FFMPEG_PATH=/usr/bin/ffmpeg
ENV CERT_FILE=/app/certs/server.crt
ENV KEY_FILE=/app/certs/server.key
ENV LD_LIBRARY_PATH=/opt/piper:/usr/lib:/usr/local/lib:${LD_LIBRARY_PATH}
# Экспорт порта
EXPOSE 8443
# Запуск приложения
CMD ["./go-speech"]