update docker images to work with new maplibre-native

This commit is contained in:
acalcutt 2022-09-14 17:43:44 -04:00
parent 72fdf84292
commit 773902bbe9
5 changed files with 56 additions and 8 deletions

View file

@ -1,4 +1,4 @@
FROM node:10-buster AS builder
FROM node:16-bullseye AS builder
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qq update \
@ -11,7 +11,6 @@ RUN export DEBIAN_FRONTEND=noninteractive \
libcairo2-dev \
libgles2-mesa-dev \
libgbm-dev \
libllvm7 \
libprotobuf-dev \
&& apt-get -y --purge autoremove \
&& apt-get clean \
@ -24,7 +23,7 @@ ENV NODE_ENV="production"
RUN cd /usr/src/app && npm install --production
FROM node:10-buster-slim AS final
FROM node:16-bullseye-slim AS final
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get -qq update \
@ -33,9 +32,20 @@ RUN export DEBIAN_FRONTEND=noninteractive \
libegl1 \
xvfb \
xauth \
libopengl0 \
libcurl4 \
curl \
libuv1-dev \
libc6-dev \
libcap2-bin \
&& apt-get -y --purge autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN curl http://archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_2.0.3-0ubuntu1_amd64.deb --output libjpeg-turbo8_2.0.3-0ubuntu1_amd64.deb
RUN apt install ./libjpeg-turbo8_2.0.3-0ubuntu1_amd64.deb
RUN curl http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu66_66.1-2ubuntu2_amd64.deb --output libicu66_66.1-2ubuntu2_amd64.deb
RUN apt install ./libicu66_66.1-2ubuntu2_amd64.deb
COPY --from=builder /usr/src/app /app

View file

@ -1,4 +1,4 @@
FROM node:10-stretch
FROM node:16-bullseye
ENV NODE_ENV="production"
ENV CHOKIDAR_USEPOLLING=1
@ -6,8 +6,9 @@ ENV CHOKIDAR_INTERVAL=500
EXPOSE 80
VOLUME /data
WORKDIR /data
ENTRYPOINT ["node", "/usr/src/app/", "-p", "80"]
ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"]
RUN mkdir -p /usr/src/app
COPY / /usr/src/app
RUN cd /usr/src/app && npm install --production
RUN ["chmod", "+x", "/usr/src/app/docker-entrypoint.sh"]

View file

@ -2,7 +2,7 @@
# Simply run "docker build -f Dockerfile_test ."
# WARNING: sometimes it fails with a core dumped exception
FROM node:10-stretch
FROM node:16-bullseye
RUN apt-get -qq update \
&& DEBIAN_FRONTEND=noninteractive apt-get -y install \
@ -17,6 +17,7 @@ RUN apt-get -qq update \
libllvm3.9 \
libprotobuf-dev \
libxxf86vm-dev \
libopengl0 \
xvfb \
&& apt-get clean

View file

@ -0,0 +1,35 @@
#!/bin/sh
set -e
handle() {
SIGNAL=$(( $? - 128 ))
echo "Caught signal ${SIGNAL}, stopping gracefully"
kill -s ${SIGNAL} $(pidof node) 2>/dev/null
}
trap handle INT TERM
refresh() {
SIGNAL=$(( $? - 128 ))
echo "Caught signal ${SIGNAL}, refreshing"
kill -s ${SIGNAL} $(pidof node) 2>/dev/null
}
trap refresh HUP
if ! which -- "${1}"; then
# first arg is not an executable
node /usr/src/app/ -p 80 "$@" &
# Wait exits immediately on signals which have traps set. Store return value and wait
# again for all jobs to actually complete before continuing.
wait $! || RETVAL=$?
while [ ${RETVAL} = 129 ] ; do
# Refressh signal HUP received. Continue waiting for signals.
wait $! || RETVAL=$?
done
wait
exit ${RETVAL}
fi
exec "$@"

View file

@ -22,18 +22,19 @@ var packageJson = require('./package');
packageJson.name += '-light';
packageJson.description = 'Map tile server for JSON GL styles - serving vector tiles';
delete packageJson.dependencies['canvas'];
delete packageJson.dependencies['@mapbox/mapbox-gl-native'];
delete packageJson.dependencies['@maplibre/maplibre-gl-native'];
delete packageJson.dependencies['sharp'];
delete packageJson.optionalDependencies;
delete packageJson.devDependencies;
packageJson.engines.node = '>= 10';
packageJson.engines.node = '>= 14.13.0';
var str = JSON.stringify(packageJson, undefined, 2);
fs.writeFileSync('light/package.json', str);
fs.renameSync('light/README_light.md', 'light/README.md');
fs.renameSync('light/Dockerfile_light', 'light/Dockerfile');
fs.renameSync('light/docker-entrypoint_light.sh', 'light/docker-entrypoint.sh');
// for Build tileserver-gl-light docker image, don't publish
if (process.argv.length > 2 && process.argv[2] == "--no-publish") {