Я использую библиотеку pdfkit для рендеринга PDF из HTML-шаблона. Библиотека представляет собой просто оболочку для wkhtmltopdf, и ее установка представляет собой головную боль.
Общий файл Dockerfile, заданный функцией python Azure, выглядит следующим образом:
FROM mcr.microsoft.com/azure-functions/python:3.0-python3.8
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY requirements.txt /
RUN pip install -r /requirements.txt
COPY . /home/site/wwwroot
Я новичок в Docker, но понимаю, что библиотеку pdfkit можно просто добавить к моим требованиям. Я просто не знаю, как работать с wkhtmltopdf.
Я видел это решение, но как мне включить это решение в свой Dockerfile?
# Create image based on the official openjdk 8-jre-alpine image from the dockerhub
FROM openjdk:8-jre-alpine
# Install wkhtmltopdf
RUN apk add --no-cache wkhtmltopdf
ENTRYPOINT ["wkhtmltopdf"]
Если вы хотите установить wkhtmltopdf
в докере, вы можете сделать это с помощью менеджера пакетов используемого вами образа.
Предполагая, что вы используете образ на основе Debian, вы можете запустить следующую команду:
sudo apt-get install wkhtmltopdf
Dockerfile
должен выглядеть такFROM mcr.microsoft.com/azure-functions/python:4-python3.10
RUN sudo apt-get install wkhtmltopdf
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
COPY requirements.txt /
RUN pip install -r /requirements.txt
COPY . /home/site/wwwroot
wkhtmltopdf
вышеуказанного DockerFile
автоматически генерируется с помощью командыfunc init . --docker
Обратитесь к этому MSDOC при развертывании функции azure с помощью докера.