Work in progress
This commit is contained in:
parent
6088b9b37f
commit
c941dd9c08
@ -83,6 +83,7 @@ RUN apt-get update \
|
|||||||
renderd \
|
renderd \
|
||||||
sudo \
|
sudo \
|
||||||
vim \
|
vim \
|
||||||
|
openssh-client \
|
||||||
&& apt-get clean autoclean \
|
&& apt-get clean autoclean \
|
||||||
&& apt-get autoremove --yes \
|
&& apt-get autoremove --yes \
|
||||||
&& rm -rf /var/lib/{apt,dpkg,cache,log}/
|
&& rm -rf /var/lib/{apt,dpkg,cache,log}/
|
||||||
@ -169,6 +170,7 @@ COPY --from=compiler-stylesheet /root/openstreetmap-carto /home/renderer/src/ope
|
|||||||
|
|
||||||
# Start running
|
# Start running
|
||||||
COPY run.sh /
|
COPY run.sh /
|
||||||
|
COPY scpkey /
|
||||||
ENTRYPOINT ["/run.sh"]
|
ENTRYPOINT ["/run.sh"]
|
||||||
CMD []
|
CMD []
|
||||||
EXPOSE 80 5432
|
EXPOSE 80 5432
|
||||||
|
|||||||
63
run.sh
63
run.sh
@ -12,23 +12,17 @@ function setPostgresPassword() {
|
|||||||
sudo -u postgres psql -c "ALTER USER renderer PASSWORD '${PGPASSWORD:-renderer}'"
|
sudo -u postgres psql -c "ALTER USER renderer PASSWORD '${PGPASSWORD:-renderer}'"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$#" -ne 1 ]; then
|
|
||||||
echo "usage: <import|run>"
|
|
||||||
echo "commands:"
|
|
||||||
echo " import: Set up the database and import /data/region.osm.pbf"
|
|
||||||
echo " run: Runs Apache and renderd to serve tiles at /tile/{z}/{x}/{y}.png"
|
|
||||||
echo "environment variables:"
|
|
||||||
echo " THREADS: defines number of threads used for importing / tile rendering"
|
|
||||||
echo " UPDATES: consecutive updates (enabled/disabled)"
|
|
||||||
echo " NAME_LUA: name of .lua script to run as part of the style"
|
|
||||||
echo " NAME_STYLE: name of the .style to use"
|
|
||||||
echo " NAME_MML: name of the .mml file to render to mapnik.xml"
|
|
||||||
echo " NAME_SQL: name of the .sql file to use"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
TILESERVER_DATA_PATH=${TILESERVER_DATA_PATH:="/tileserverdata"}
|
||||||
|
TILESERVER_STORAGE_PATH=${TILESERVER_STORAGE_PATH:="/mnt/azure"}
|
||||||
|
TILESERVER_DATA_LABEL=${TILESERVER_DATA_LABEL:="data"}
|
||||||
|
|
||||||
|
if [ "$TILESERVER_MODE" != "CREATE" ] && [ "$TILESERVER_MODE" != "RESTORE" ] && [ "$TILESERVER_MODE" != "CREATESCP" ] && [ "$TILESERVER_MODE" != "RESTORESCP" ]; then
|
||||||
|
# Default to CREATE
|
||||||
|
TILESERVER_MODE="CREATE"
|
||||||
|
fi
|
||||||
|
|
||||||
# if there is no custom style mounted, then use osm-carto
|
# if there is no custom style mounted, then use osm-carto
|
||||||
if [ ! "$(ls -A /data/style/)" ]; then
|
if [ ! "$(ls -A /data/style/)" ]; then
|
||||||
mv /home/renderer/src/openstreetmap-carto-backup/* /data/style/
|
mv /home/renderer/src/openstreetmap-carto-backup/* /data/style/
|
||||||
@ -40,7 +34,9 @@ if [ ! -f /data/style/mapnik.xml ]; then
|
|||||||
carto ${NAME_MML:-project.mml} > mapnik.xml
|
carto ${NAME_MML:-project.mml} > mapnik.xml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" == "import" ]; then
|
service apache2 stop
|
||||||
|
|
||||||
|
if [ "$TILESERVER_MODE" == "CREATE" ] || [ "$TILESERVER_MODE" == "CREATESCP" ]; then
|
||||||
# Ensure that database directory is in right state
|
# Ensure that database directory is in right state
|
||||||
mkdir -p /data/database/postgres/
|
mkdir -p /data/database/postgres/
|
||||||
chown renderer: /data/database/
|
chown renderer: /data/database/
|
||||||
@ -60,9 +56,9 @@ if [ "$1" == "import" ]; then
|
|||||||
sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO renderer;"
|
sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO renderer;"
|
||||||
setPostgresPassword
|
setPostgresPassword
|
||||||
|
|
||||||
# Download Luxembourg as sample if no data is provided
|
# Download norway as sample if no data is provided
|
||||||
if [ ! -f /data/region.osm.pbf ] && [ -z "${DOWNLOAD_PBF:-}" ]; then
|
if [ ! -f /data/region.osm.pbf ] && [ -z "${DOWNLOAD_PBF:-}" ]; then
|
||||||
echo "WARNING: No import file at /data/region.osm.pbf, so importing Luxembourg as example..."
|
echo "WARNING: No import file at /data/region.osm.pbf, so importing norway as example..."
|
||||||
DOWNLOAD_PBF="https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf"
|
DOWNLOAD_PBF="https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf"
|
||||||
DOWNLOAD_POLY="https://download.geofabrik.de/europe/luxembourg.poly"
|
DOWNLOAD_POLY="https://download.geofabrik.de/europe/luxembourg.poly"
|
||||||
fi
|
fi
|
||||||
@ -126,13 +122,42 @@ if [ "$1" == "import" ]; then
|
|||||||
|
|
||||||
service postgresql stop
|
service postgresql stop
|
||||||
|
|
||||||
|
mkdir $TILESERVER_DATA_PATH
|
||||||
|
|
||||||
|
tar cz /data | split -b 1024MiB - $TILESERVER_DATA_PATH/$TILESERVER_DATA_LABEL.tgz_
|
||||||
|
|
||||||
|
if [ "$TILESERVER_MODE" == "CREATESCP" ]; then
|
||||||
|
mkdir $TILESERVER_DATA_LABEL
|
||||||
|
scp -i /scpkey -r -o StrictHostKeyChecking=no $TILESERVER_DATA_LABEL $TILESERVER_STORAGE_PATH/
|
||||||
|
scp -i /scpkey -o StrictHostKeyChecking=no $TILESERVER_DATA_PATH/*.tgz* $TILESERVER_STORAGE_PATH/$TILESERVER_DATA_LABEL
|
||||||
|
else
|
||||||
|
mkdir $TILESERVER_STORAGE_PATH/$TILESERVER_DATA_LABEL
|
||||||
|
cp $TILESERVER_DATA_PATH/*.tgz* $TILESERVER_STORAGE_PATH/$TILESERVER_DATA_LABEL
|
||||||
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" == "run" ]; then
|
if [ "$TILESERVER_MODE" == "RESTORE" ] || [ "$TILESERVER_MODE" == "RESTORESCP" ]; then
|
||||||
# Clean /tmp
|
# Clean /tmp
|
||||||
rm -rf /tmp/*
|
rm -rf /tmp/*
|
||||||
|
|
||||||
|
mkdir -p $TILESERVER_DATA_PATH
|
||||||
|
|
||||||
|
if [ "$TILESERVER_MODE" == "RESTORESCP" ]; then
|
||||||
|
scp -i /scpkey -o StrictHostKeyChecking=no $TILESERVER_STORAGE_PATH/$TILESERVER_DATA_LABEL/*.tgz* $TILESERVER_DATA_PATH
|
||||||
|
else
|
||||||
|
cp $TILESERVER_STORAGE_PATH/$TILESERVER_DATA_LABEL/*.tgz* $TILESERVER_DATA_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat $TILESERVER_DATA_PATH/$TILESERVER_DATA_LABEL.tgz_* | tar xz -C /data --strip-components=1
|
||||||
|
|
||||||
|
rm -rf /data/region.osm.pbf
|
||||||
|
|
||||||
|
rm -rf $TILESERVER_DATA_PATH
|
||||||
|
|
||||||
|
chown -R renderer: /data/database/
|
||||||
|
|
||||||
# migrate old files
|
# migrate old files
|
||||||
if [ -f /data/database/PG_VERSION ] && ! [ -d /data/database/postgres/ ]; then
|
if [ -f /data/database/PG_VERSION ] && ! [ -d /data/database/postgres/ ]; then
|
||||||
mkdir /data/database/postgres/
|
mkdir /data/database/postgres/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user