Як запустити Aspose.Words в Docker
Мікросервіси, в поєднанні з контейнеризації дозволяють легко поєднувати технології. Docker дозволяє легко інтегрувати Aspose.Words функціональність в додатку, незалежно від того, яка технологія знаходиться у вашому пристрої.
Якщо ви орієнтуєтеся на мікросервіси, або якщо основні технології у вашому стеці не є .NET, C++ або Java, але потрібно Aspose.Words функціональність, або якщо ви вже використовуєте Docker у вашій стекі, потім ви можете зацікавити використання Aspose.Words в Docker контейнер.
Вимоги
-
до Docker необхідно встановити на вашу систему. Інформація про те, як встановити Docker на Windows або Mac, див. на посилання в розділі “Діти також”.
-
до Також зазначимо, що Visual Studio 2017 р. .NET Core 2.2 км SDK використовується в прикладі, що надається нижче.
Привіт світ додаток
У цьому прикладі ви створюєте простий додаток для консолі Hello World, який робить документ “Hello World!” і зберігає його у всіх підтриманих форматах збереження. Додаток може бути вбудованим і працювати в Dockerй
Створення програми консолі
Щоб створити програму Hello World, слідуйте за кроками нижче:
1,1 км Зареєструватися Docker встановлюється, переконайтеся, що він використовує Linux Контейнери (за замовчуванням). При необхідності виберіть перемикач Linux варіанти контейнерів від Docker Меню робочих місць.
1,1 км У Visual Studio, створити .NET Core Додаток консолі.
1,1 км Встановити останні Aspose.Words версія з NuGetй Про нас Заточка буде встановлена в залежності від Aspose.Wordsй
1,1 км Оскільки додаток буде працювати на Linux, > відповідні рідні Linux повинні бути встановлені активи. Почати з Debian базовий образ і установка SkiaSharp.NativeAssets
йLinuxй
1,1 км Коли всі необхідні залежності додаються, напишіть просту програму, яка створює документ “Hello World!” і зберігає її у всіх підтриманих форматах збереження:
Зауважте, що папка “TestOut” вказана як вихідна папка для збереження вихідних документів. При запуску програми в Docker, > папка на хост машина буде встановлена до цієї папки в контейнері. Це дозволить вам легко переглядати вихід, створений за допомогою Aspose.Words в Docker контейнер.
Налаштування Dockerfile
Наступним кроком є створення та налаштування Dockerfileй
1,1 км Створити Dockerfile і розмістити його поруч із файлом розчину вашої програми. Зберігати ім’я файлу без розширення (за замовчуванням). 1,1 км У Dockerfile, вказати:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /app
RUN apt-get update && apt-get install -y libfontconfig1
COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample/out/Aspose.Words.Docker.Sample.dll"]
Прості Dockerfile, які містять такі інструкції:
- У SDK зображення для використання. Ось це .NET Core SDK 2.2 зображень. Docker завантажить його, коли будівля працює. Версія SDK вказується як тег.
- до Робочий каталог, який вказаний в наступному рядку.
- до Команда для установки libfontconfig1 працює в контейнері. Що потрібно на SkiaSharp.
- до Команда копіювати всі контейнери, опублікувати заявку і вказати точку входу.
Будівництво та запуск програми Docker
Тепер додаток може бути вбудованим і працювати в Dockerй Відкрийте свій улюблений командний запит, змініть каталог до папки за допомогою програми (папер, де файл розчину та файл рішення) Dockerfile розміщуються) і запустіть наступну команду:
docker build -t awtest .
Перший раз ця команда виконана вона може зайняти більше, так як Docker необхідно завантажити потрібні зображення. Після завершення попередньої команди запустіть наступну команду:
docker run --mount type=bind,source=C:\Temp,target=/TestOut --rm awtest from Docker
Підтримка зображень Aspose.Words
Aspose.Words Для обох .NET Framework і .NET Coreй Про нас .NET Core зображення набагато менші за розмірами .NET Framework зображення, що робить зображення .NET Core Кращий вибір для створення мікросервісів і для використання в контейнерах. Доступно для розгортання додатків Linux Docker контейнери (для перехресного розгортання), які світліші, ніж Windows контейнери.
Офіційні зображення для .NET Core SDK Для:
- до Debian 9 і 10
- до Ubuntu 18.04 та 19.04
- до Alpine 3.7 і 3.9
- до Windows Навігація Server
Для роботи з графікою, Aspose.Words для .NET Standard від SkiaSharp Цей ліміт зображення Aspose.Words може виконуватися на наступній:
- до Debian 9 і 10
- до Ubuntu 18.04 та 19.04
- Alpine 3.9
Схарп не працює Windows Навігація Server через брак деяких рідних залежностей, Про компанію SkiaSharpй Питання буде вирішено в 1.68.1.1 версія SkiaSharp. Якщо потрібно запустити Aspose.Words в Windows контейнер, використовувати .NET Framework базове зображення з .NET Framework версія Aspose.Words, яка не залежить від SkiaSharp.
РусскийУкраїнськаБеларускаяOʻzbek tiliEnglish На SkiaSharp передбачені наступні робочі години NuGet пакет:
- оскс
- тизен-арм
- тизен-кс86
- win10-arm
- виграш10-х64
- виграш10-х86
- win-x64
- win-x86
Для запуску Linux, Ви повинні використовувати додаткові NuGet Пакети з відповідними рідними активами, такі як рідні збірки бібліотеки Skia, перераховані нижче:
- до SkiaSharp.NativeAssets.Linux – забезпечує надійну коляску для x64 Debian на основі Linux розподіли.
- до SkiaSharp.NativeAssets.Linux.NoDependencies – пакет призначений для використання в Linux розподіли, які не мають залежностей libfontconfig. Тестування RHEL 7 (х64).
- до Goelze.SkiaSharp.NativeAssets.AlpineLinux – забезпечує надійну коляску для x64 Alpine Linux 3.9.
- до Jellyfin.SkiaSharp.NativeAssets.LinuxArm – забезпечує надійне будівництво Skia для рук32 та рук64 Debian на основі Linux розподіли.
Більше прикладів
1,1 км У наведеному вище прикладі програма була запущена в SDK зображення. SDK зображення важке, ніж часові зображення. Приклад нижче показує, як показується Docker файл повинен бути модифікований для використання SDK зображення для створення програми, а зображення робочого часу для його запуску:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
\# copy csproj and restore as distinct layers
COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet restore
\# copy and publish app and libraries
WORKDIR /app/
COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet publish -c Release -o out
\# copy to runtime environment
FROM mcr.microsoft.com/dotnet/core/runtime:2.2 AS runtime
WORKDIR /app
\# libfontconfig1 is required to properly work with fonts in Linux.
RUN apt-get update && apt-get install -y libfontconfig1
RUN apt install libharfbuzz-icu0
COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-bionic AS build
WORKDIR /app
\# copy csproj and restore as distinct layers
COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet restore
\# copy and publish app and libraries
WORKDIR /app/
COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet publish -c Release -o out
\# copy to runtime environment
FROM mcr.microsoft.com/dotnet/core/runtime:2.2-bionic AS runtime
WORKDIR /app
\# libfontconfig1 is required to properly work with fonts in Linux.
RUN apt-get update && apt-get install -y libfontconfig1
RUN apt install libharfbuzz-icu0
COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine3.9 AS build
WORKDIR /app
\# copy csproj and restore as distinct layers
COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet restore
\# copy and publish app and libraries
WORKDIR /app/
COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet publish -c Release -o out
\# copy to runtime environment
FROM mcr.microsoft.com/dotnet/core/runtime:2.2-alpine3.9 AS runtime
WORKDIR /app
\# fontconfig is required to properly work with fonts in Linux.
RUN apk update && apk upgrade && apk add fontconfig && apk add harfbuzz
COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
ENTRYPOINT ["dotnet", "Aspose.Words.Docker.Sample.dll"]
FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build
WORKDIR /app
\# copy csproj and restore as distinct layers
COPY Aspose.Words.Docker.Sample/*.csproj ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet restore
\# copy and publish app and libraries
WORKDIR /app/
COPY Aspose.Words.Docker.Sample/. ./Aspose.Words.Docker.Sample/
WORKDIR /app/Aspose.Words.Docker.Sample
RUN dotnet publish -c Release -o out
\# copy to runtime environment
FROM kkamberta/dotnet-21-rhel7 AS runtime
WORKDIR /app
COPY --from=build /app/Aspose.Words.Docker.Sample/out ./
ENTRYPOINT ["/opt/rh/rh-dotnet21/root/usr/bin/dotnet", "Aspose.Words.Docker.Sample.dll"]
Дивитися ще
- Увійти Docker Настільний Windows
- Увійти Docker Робочий стіл на Mac
- Visual Studio 2017, .NET Core 2.2 SDK
- до Перемикач Linux контейнери опція
- Встановити НавігаціяLinux
- Додаткова інформація .NET Core SDK
- Використовуйте додаткові NuGet Пакети: НавігаціяLinux, НавігаціяLinux.NoDependencies, Goelze.SkiaSharp.NativeAssets.AlpineLinux, Jellyfin.SkiaSharp.NativeAssets.LinuxРушники
- RHEL 7 (х64)