File size: 3,282 Bytes
43a053e
 
e4f115e
43a053e
2191495
e4f115e
9b23833
43a053e
d8eb6b1
f05034d
 
43a053e
e4f115e
e0a221f
 
e4f115e
43a053e
 
 
 
 
 
d8eb6b1
2191495
d8eb6b1
2191495
e4f115e
43a053e
 
 
e4f115e
d8eb6b1
 
 
43a053e
 
e4f115e
43a053e
 
 
 
e4f115e
d8eb6b1
 
43a053e
e4f115e
43a053e
 
 
1367717
43a053e
d8eb6b1
 
 
e4f115e
43a053e
 
 
 
 
 
 
 
e4f115e
2191495
e4f115e
d8eb6b1
43a053e
 
 
 
d8eb6b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Используем базовый образ с OpenJDK (Java Development Kit)
FROM openjdk:17-jdk-slim

# Устанавливаем рабочую директорию для скачивания и промежуточных файлов
WORKDIR /app

ARG LANGTOOL_VERSION="6.6"

# --- Переменные для новой FastText модели compress-fasttext ---
ARG FASTTEXT_MODEL_NAME="geowac_tokens_sg_300_5_2020-400K-100K-300.bin"
ARG FASTTEXT_MODEL_URL="https://github.com/avidale/compress-fasttext/releases/download/gensim-4-draft/${FASTTEXT_MODEL_NAME}"
# -------------------------------------------------------------

# Ожидаемое имя директории после распаковки LanguageTool zip
ARG LANGTOOL_DIR_NAME="LanguageTool-${LANGTOOL_VERSION}"

# --- Преобразование ARGs в ENVs для использования в CMD ---
ENV LANGTOOL_VERSION=${LANGTOOL_VERSION}
ENV FASTTEXT_MODEL_NAME=${FASTTEXT_MODEL_NAME}
ENV LANGTOOL_DIR_NAME=${LANGTOOL_DIR_NAME}
# --- Конец преобразования ---

# Устанавливаем пакеты для скачивания и распаковки (wget, unzip)
RUN apt-get update && \
    apt-get install -y --no-install-recommends wget unzip && \
    rm -rf /var/lib/apt/lists/*

# Скачиваем LanguageTool server zip
RUN echo "Downloading LanguageTool zip..." && \
    wget https://languagetool.org/download/LanguageTool-${LANGTOOL_VERSION}.zip -O languagetool.zip

# --- Настройка FastText с compress-fasttext модели ---
# Скачиваем FastText модель (.bin файл напрямую)
RUN echo "Downloading FastText model from GitHub Releases..." && \
    wget "${FASTTEXT_MODEL_URL}" -O "/app/${FASTTEXT_MODEL_NAME}"
# -----------------------------------------------------

# Распаковываем LanguageTool zip в /app (создаст /app/LanguageTool-X.Y/)
RUN echo "Unzipping LanguageTool..." && \
    unzip languagetool.zip -d /app/ && \
    rm languagetool.zip

# Перемещаем скачанную FastText модель (.bin) внутрь директории LanguageTool
RUN echo "Moving FastText model (.bin) to LanguageTool directory..." && \
    mv "/app/${FASTTEXT_MODEL_NAME}" "/app/${LANGTOOL_DIR_NAME}/"

# Устанавливаем рабочую директорию внутри контейнера на директорию LanguageTool
WORKDIR "/app/${LANGTOOL_DIR_NAME}"

# Создаем файл конфигурации server.properties
RUN echo "Creating server.properties configuration file..." && \
    echo "fasttextModel=${FASTTEXT_MODEL_NAME}" > server.properties && \
    echo "motherTongue=ru" >> server.properties


# --- Отладочные шаги ---
RUN echo "Listing contents of WORKDIR: $(pwd)"
RUN ls -la ./
RUN echo "Listing contents of libs directory: ./libs/"
RUN ls -la ./libs/ || true
RUN echo "Contents of server.properties:"
RUN cat server.properties
# --- Конец отладочных шагов ---

EXPOSE 8010

# Исправленная команда для запуска LanguageTool server
CMD java -Xmx8g -cp "*:libs/*" org.languagetool.server.HTTPServer \
    --config server.properties \
    --allow-origin '*' \
    --public \
    --port 8010