update docker images to work with new maplibre-native
This commit is contained in:
parent
72fdf84292
commit
773902bbe9
5 changed files with 56 additions and 8 deletions
16
Dockerfile
16
Dockerfile
|
@ -1,4 +1,4 @@
|
||||||
FROM node:10-buster AS builder
|
FROM node:16-bullseye AS builder
|
||||||
|
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive \
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
&& apt-get -qq update \
|
&& apt-get -qq update \
|
||||||
|
@ -11,7 +11,6 @@ RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
libcairo2-dev \
|
libcairo2-dev \
|
||||||
libgles2-mesa-dev \
|
libgles2-mesa-dev \
|
||||||
libgbm-dev \
|
libgbm-dev \
|
||||||
libllvm7 \
|
|
||||||
libprotobuf-dev \
|
libprotobuf-dev \
|
||||||
&& apt-get -y --purge autoremove \
|
&& apt-get -y --purge autoremove \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
|
@ -24,7 +23,7 @@ ENV NODE_ENV="production"
|
||||||
RUN cd /usr/src/app && npm install --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 \
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
&& apt-get -qq update \
|
&& apt-get -qq update \
|
||||||
|
@ -33,9 +32,20 @@ RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
libegl1 \
|
libegl1 \
|
||||||
xvfb \
|
xvfb \
|
||||||
xauth \
|
xauth \
|
||||||
|
libopengl0 \
|
||||||
|
libcurl4 \
|
||||||
|
curl \
|
||||||
|
libuv1-dev \
|
||||||
|
libc6-dev \
|
||||||
|
libcap2-bin \
|
||||||
&& apt-get -y --purge autoremove \
|
&& apt-get -y --purge autoremove \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& 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
|
COPY --from=builder /usr/src/app /app
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM node:10-stretch
|
FROM node:16-bullseye
|
||||||
|
|
||||||
ENV NODE_ENV="production"
|
ENV NODE_ENV="production"
|
||||||
ENV CHOKIDAR_USEPOLLING=1
|
ENV CHOKIDAR_USEPOLLING=1
|
||||||
|
@ -6,8 +6,9 @@ ENV CHOKIDAR_INTERVAL=500
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
VOLUME /data
|
VOLUME /data
|
||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
ENTRYPOINT ["node", "/usr/src/app/", "-p", "80"]
|
ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"]
|
||||||
|
|
||||||
RUN mkdir -p /usr/src/app
|
RUN mkdir -p /usr/src/app
|
||||||
COPY / /usr/src/app
|
COPY / /usr/src/app
|
||||||
RUN cd /usr/src/app && npm install --production
|
RUN cd /usr/src/app && npm install --production
|
||||||
|
RUN ["chmod", "+x", "/usr/src/app/docker-entrypoint.sh"]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Simply run "docker build -f Dockerfile_test ."
|
# Simply run "docker build -f Dockerfile_test ."
|
||||||
# WARNING: sometimes it fails with a core dumped exception
|
# WARNING: sometimes it fails with a core dumped exception
|
||||||
|
|
||||||
FROM node:10-stretch
|
FROM node:16-bullseye
|
||||||
|
|
||||||
RUN apt-get -qq update \
|
RUN apt-get -qq update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y install \
|
&& DEBIAN_FRONTEND=noninteractive apt-get -y install \
|
||||||
|
@ -17,6 +17,7 @@ RUN apt-get -qq update \
|
||||||
libllvm3.9 \
|
libllvm3.9 \
|
||||||
libprotobuf-dev \
|
libprotobuf-dev \
|
||||||
libxxf86vm-dev \
|
libxxf86vm-dev \
|
||||||
|
libopengl0 \
|
||||||
xvfb \
|
xvfb \
|
||||||
&& apt-get clean
|
&& apt-get clean
|
||||||
|
|
||||||
|
|
35
docker-entrypoint_light.sh
Normal file
35
docker-entrypoint_light.sh
Normal 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 "$@"
|
|
@ -22,18 +22,19 @@ var packageJson = require('./package');
|
||||||
packageJson.name += '-light';
|
packageJson.name += '-light';
|
||||||
packageJson.description = 'Map tile server for JSON GL styles - serving vector tiles';
|
packageJson.description = 'Map tile server for JSON GL styles - serving vector tiles';
|
||||||
delete packageJson.dependencies['canvas'];
|
delete packageJson.dependencies['canvas'];
|
||||||
delete packageJson.dependencies['@mapbox/mapbox-gl-native'];
|
delete packageJson.dependencies['@maplibre/maplibre-gl-native'];
|
||||||
delete packageJson.dependencies['sharp'];
|
delete packageJson.dependencies['sharp'];
|
||||||
|
|
||||||
delete packageJson.optionalDependencies;
|
delete packageJson.optionalDependencies;
|
||||||
delete packageJson.devDependencies;
|
delete packageJson.devDependencies;
|
||||||
|
|
||||||
packageJson.engines.node = '>= 10';
|
packageJson.engines.node = '>= 14.13.0';
|
||||||
|
|
||||||
var str = JSON.stringify(packageJson, undefined, 2);
|
var str = JSON.stringify(packageJson, undefined, 2);
|
||||||
fs.writeFileSync('light/package.json', str);
|
fs.writeFileSync('light/package.json', str);
|
||||||
fs.renameSync('light/README_light.md', 'light/README.md');
|
fs.renameSync('light/README_light.md', 'light/README.md');
|
||||||
fs.renameSync('light/Dockerfile_light', 'light/Dockerfile');
|
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
|
// for Build tileserver-gl-light docker image, don't publish
|
||||||
if (process.argv.length > 2 && process.argv[2] == "--no-publish") {
|
if (process.argv.length > 2 && process.argv[2] == "--no-publish") {
|
||||||
|
|
Loading…
Reference in a new issue