Error loading shared library libcairo.so.2: No such file or directory
I created a build layer in my Dockerfile but didn’t apk add the required packages to the app layer. And so libcairo couldn’t find the files it depends on.
Broken Version
FROM node:alpine3.16 as build
WORKDIR /app
RUN apk add --update --no-cache \
build-base \
cairo-dev \
jpeg-dev \
pango-dev \
giflib-dev \
libtool
COPY . .
RUN npm ci
FROM node:alpine3.16
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["npm", "start"]
Working Version
FROM node:alpine3.16 as build
WORKDIR /app
RUN apk add --update --no-cache \
build-base \
cairo-dev \
jpeg-dev \
pango-dev \
giflib-dev \
libtool
COPY . .
RUN npm ci
ENTRYPOINT ["npm", "start"]