magicboris's picture
Update Dockerfile
f05034d verified
# Используем базовый образ с 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