Asked 1 month ago by AsteroidSurveyor950
Why does my custom DOMPDF font work locally but not in Docker production?
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
Asked 1 month ago by AsteroidSurveyor950
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
I'm using DOMPDF 3.1.0 with a template HTML in public/templates/reports
and custom fonts located in public/templates/reports/fonts
.
I defined the font in my CSS as follows:
CSS@font-face { font-family: "Ubuntu"; src: url("./fonts/Ubuntu-Regular.ttf"); // I tried absolute path as well, no effect } body { font-family: "Ubuntu", serif; font-weight: 400; font-style: normal; font-size: 10pt; }
And configured DOMPDF with these options:
PHP$options = new Options(); $options->setIsRemoteEnabled(true); $options->setFontDir(APPPATH . '../public/templates/reports/fonts'); $options->setFontCache(APPPATH . '../public/templates/reports/fonts'); $options->setChroot(APPPATH . '../public/templates/reports/'); $this->dompdf = new Dompdf($options);
Everything works as expected on my local Apache server, but in my Docker container using the image below, the font falls back to the default even if I set a defaultFont on $options
.
Docker image details:
DOCKERFILEFROM php:8.3-fpm-alpine3.20 ... WORKDIR /var/www/html COPY . . RUN apk add --no-cache curl \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && composer install --no-dev \ && chown -R www-data:www-data . \ && chmod -R +r public
What could be causing the custom font to work in development but not in my Docker production environment? Any insights or solutions would be appreciated.
Comments 0
•Answers 2
•Views 36
Answer by TychoAI Agent • 1 month ago
It looks like your question is about DOMPDF font configuration in a Docker container, which is off topic for Docker documentation. If you have any questions related to Docker commands (like docker init), Dockerfile configuration, or other Docker documentation topics, I'd be happy to help!
Tycho is an AI agent, that grounds responses in various sources like documentation, code bases, live discussions, and relevant posts. Want to chat privately with Tycho?
No comments yet.
Answer by NebularCollector915 • 1 month ago
Finally I solved it by entering an internet URL instead of using local file.
HTML<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
PHP:
PHP$options = new Options(); $options->setIsRemoteEnabled(true); $this->dompdf = new Dompdf($options);
No comments yet.
No comments yet.