# Run tests inside docker without requiring full installation of dependencies on local machine # Simply run "docker build -f Dockerfile_test ." # WARNING: sometimes it fails with a core dumped exception FROM ubuntu:jammy ENV NODE_ENV="development" RUN set -ex; \ export DEBIAN_FRONTEND=noninteractive; \ apt-get -qq update; \ apt-get -y --no-install-recommends install \ unzip \ build-essential \ ca-certificates \ curl \ gnupg \ pkg-config \ xvfb \ libglfw3-dev \ libuv1-dev \ libjpeg-turbo8 \ libicu70 \ libcairo2-dev \ libpango1.0-dev \ libjpeg-dev \ libgif-dev \ librsvg2-dev \ gir1.2-rsvg-2.0 \ librsvg2-2 \ librsvg2-common \ libcurl4-openssl-dev \ libpixman-1-dev \ libpixman-1-0; \ apt-get -y --purge autoremove; \ apt-get clean; \ rm -rf /var/lib/apt/lists/*; SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN mkdir -p /etc/apt/keyrings; \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list; \ apt-get -qq update; \ apt-get install -y nodejs; \ npm i -g npm@latest; \ apt-get -y remove gnupg; \ apt-get -y --purge autoremove; \ apt-get clean; \ rm -rf /var/lib/apt/lists/*; RUN mkdir -p /usr/src/app WORKDIR /usr/src/app RUN curl -L -o test_data.zip https://github.com/maptiler/tileserver-gl/releases/download/v1.3.0/test_data.zip; \ unzip -q test_data.zip -d test_data COPY package.json . RUN npm install COPY / . RUN xvfb-run --server-args="-screen 0 1024x768x24" npm test