En Docker
, es muy cómodo tener una imagen base que puedas usar para el despliegue de todas tus aplicaciones.
Aquí le proporcionamos un ejemplo de Dockerfile
bastante completo con los siguientes detalles:
imagemagick
para la manipulación de imágeneswkhtmltopdf
para creación de informes en pdfqpdf
para la manipulación y concatenación de pdflibreoffice
para conversión de docx, etc, a pdf para su visualizaciónemail2pdf
para convertir archivos eml a pdf para su visualizaciónkernel
para la monitorización de archivoslocales
, huso horario, para España y UTF-8FROM node:20-bullseye-slim
RUN <<EOF
apt-get -o Acquire::Check-Valid-Until=false -o Acquire::Check-Date=false update
apt-get install -y --allow-unauthenticated \
tzdata \
locales \
nano \
libfontenc1 \
xfonts-75dpi \
xfonts-base \
xfonts-encodings \
xfonts-utils \
openssl \
build-essential \
libssl-dev \
libxrender-dev \
git-core \
libx11-dev \
libxext-dev \
libfontconfig1-dev \
libfreetype6-dev \
fontconfig \
rsync \
libicu67 \
wget \
qpdf \
libreoffice \
pip \
python3-magic \
imagemagick
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb
dpkg -i wkhtmltox_0.12.6.1-2.bullseye_amd64.deb
rm wkhtmltox_0.12.6.1-2.bullseye_amd64.deb
cd / && git clone https://github.com/Corvus4n6/email2pdf2.git && cd /email2pdf2 && pip install .
ln -fs /usr/share/zoneinfo/Europe/Madrid /etc/localtime
echo "fs.inotify.max_user_instances=524288" >> /etc/sysctl.conf
echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf
echo "fs.inotify.max_queued_events=524288" >> /etc/sysctl.conf
echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
apt-get clean -y
apt-get autoclean -y
apt-get autoremove
EOF
ENV LANG="es_ES.UTF-8"
ENV LANGUAGE="es_ES:es"
ENV LC_ALL="es_ES.UTF-8"
ENV TZ="Europe/Madrid"
Esta imagen se encuentra disponible públicamente en Docker Hub.
Para crear su propia imagen, edite su archivo Dockerfile
como necesite y cree la imagen base con el comando docker build --no-cache -t <nombre-de-su-imagen> .
.
Por favor, busque en Issues y Discussions en Github para más información