Установка Aspose.Slides для Node.js через Java с использованием Docker

Требования:

  • Установите Docker на ваш компьютер. Вы можете следовать официальному руководству по установке здесь.

Шаги:

1. Создать Dockerfile

Создайте новый файл с именем Dockerfile в каталоге вашего проекта со следующим содержимым:

# Использовать Ubuntu 20.04 в качестве базового образа
FROM ubuntu:20.04

# Обновить список пакетов и установить необходимые пакеты для добавления репозиториев и загрузки файлов
RUN apt-get update && \
   apt-get install -y curl gnupg2 software-properties-common && \
   rm -rf /var/lib/apt/lists/*

# Установить Node.js версии 18.x из репозитория Nodesource
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
   apt-get install -y nodejs && \
   rm -rf /var/lib/apt/lists/*

# Установить Python 2.x, который требуется некоторым npm‑пакетам, например node-gyp
RUN apt-get update && \
   apt-get install -y python2 && \
   rm -rf /var/lib/apt/lists/*

# Установить OpenJDK 11, который требуется Aspose.Slides для зависимостей Java
RUN apt-get update && \
   apt-get install -y openjdk-11-jdk && \
   rm -rf /var/lib/apt/lists/*

# Установить пакет build-essential, включающий такие инструменты, как 'make', необходимые для сборки нативных модулей
RUN apt-get update && \
   apt-get install -y build-essential && \
   rm -rf /var/lib/apt/lists/*

# Установить node-gyp глобально, инструмент для компиляции нативных аддонов для Node.js
RUN npm install -g node-gyp

# Задать рабочий каталог внутри контейнера как /app
WORKDIR /app

# Создать файл package.json с необходимыми данными и зависимостями
RUN echo '{\n\
  "name": "aspose-slides-app",\n\
  "version": "1.0.0",\n\
  "main": "index.js",\n\
  "scripts": {\n\
   "start": "node index.js"\n\
  },\n\
  "dependencies": {\n\
   "aspose.slides.via.java": "^25.12.0"\n\
  }\n\
}' > package.json

# Создать файл index.js с примером кода для создания презентации с помощью Aspose.Slides
RUN echo 'const slides = require("aspose.slides.via.java");\n\
var presentation = new slides.Presentation();\n\
var slide = presentation.getSlides().get_Item(0);\n\
slide.getShapes().addAutoShape(slides.ShapeType.Line, 50, 150, 300, 0);\n\
presentation.save("./NewPresentation.pptx", slides.SaveFormat.Pptx);\n\
console.log("Script completed, please check file /app/NewPresentation.pptx!");' > index.js

# Установить пакет Aspose.Slides via Java, указанный в package.json
RUN npm install aspose.slides.via.java

# Установить команду по умолчанию для запуска приложения при старте контейнера
CMD ["node", "index.js"]

2. Собрать Docker‑образ

Выполните следующую команду в каталоге, где находится ваш Dockerfile, чтобы собрать Docker‑образ:

docker build -t aspose-slides-nodejs .

3. Запустить Docker‑контейнер

Запустите контейнер и сохраните его ID:

CONTAINER_ID=$(docker create aspose-slides-nodejs)
docker start -a $CONTAINER_ID

4. Доступ к Aspose.Slides в Docker

После запуска контейнера скрипт сгенерирует файл PPTX. Вы можете найти сгенерированный файл NewPresentation.pptx в папке /app внутри контейнера:

docker cp $CONTAINER_ID:/app/NewPresentation.pptx ./NewPresentation.pptx

Удалите временный контейнер:

docker rm $CONTAINER_ID