kopia lustrzana https://github.com/osm2vectortiles/osm2vectortiles
Bake water import file into Docker image
rodzic
e3f60d8771
commit
05acd1db10
10
.travis.yml
10
.travis.yml
|
@ -6,11 +6,8 @@ before_install:
|
||||||
- curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > docker-compose
|
- curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||||
- chmod +x docker-compose
|
- chmod +x docker-compose
|
||||||
- sudo mv docker-compose /usr/local/bin
|
- sudo mv docker-compose /usr/local/bin
|
||||||
- mkdir -p TRAVIS_BUILD_DIR/import
|
- wget -nc -P "$HOME/cache" "https://s3.amazonaws.com/metro-extracts.mapzen.com/zurich_switzerland.osm.pbf"
|
||||||
- wget -nc -P "$TRAVIS_BUILD_DIR/import" "https://s3.amazonaws.com/metro-extracts.mapzen.com/zurich_switzerland.osm.pbf"
|
- mkdir -p "$TRAVIS_BUILD_DIR/import" && cp "$HOME/cache/zurich_switzerland.osm.pbf" "$TRAVIS_BUILD_DIR/import"
|
||||||
- wget -nc -P "$TRAVIS_BUILD_DIR/import" "http://data.openstreetmapdata.com/water-polygons-split-3857.zip"
|
|
||||||
- unzip -fj "$TRAVIS_BUILD_DIR/import/water-polygons-split-3857.zip" -d "$TRAVIS_BUILD_DIR/import"
|
|
||||||
- ls -la "$TRAVIS_BUILD_DIR/import"
|
|
||||||
install:
|
install:
|
||||||
- docker-compose build
|
- docker-compose build
|
||||||
before_script:
|
before_script:
|
||||||
|
@ -25,5 +22,4 @@ script:
|
||||||
- curl "http://localhost:8080/index.json"
|
- curl "http://localhost:8080/index.json"
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- ./cache
|
- $HOME/cache
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,6 @@ import:
|
||||||
OSM_PASSWORD: "suisse"
|
OSM_PASSWORD: "suisse"
|
||||||
import-water:
|
import-water:
|
||||||
build: ./src/import-water
|
build: ./src/import-water
|
||||||
volumes:
|
|
||||||
- ./import:/data/import
|
|
||||||
links:
|
links:
|
||||||
- postgis:db
|
- postgis:db
|
||||||
environment:
|
environment:
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
FROM mdillon/postgis:9.4
|
FROM mdillon/postgis:9.4
|
||||||
|
|
||||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
wget \
|
||||||
wget unzip \
|
unzip \
|
||||||
--no-install-recommends
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p /data/import && wget --quiet http://data.openstreetmapdata.com/water-polygons-split-3857.zip && unzip -j water-polygons-split-3857.zip -d /data/import && rm water-polygons-split-3857.zip
|
||||||
|
ENV IMPORT_DATA_DIR=/data/import
|
||||||
|
|
||||||
RUN mkdir -p /usr/src/app
|
RUN mkdir -p /usr/src/app
|
||||||
COPY import.sh /usr/src/app/
|
COPY import.sh /usr/src/app/
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
VOLUME /data/import
|
|
||||||
ENV IMPORT_DATA_DIR=/data/import
|
|
||||||
|
|
||||||
CMD ["./import.sh"]
|
CMD ["./import.sh"]
|
||||||
|
|
|
@ -11,17 +11,9 @@ readonly OSM_DB=${OSM_DB:-osm}
|
||||||
readonly OSM_USER=${OSM_USER:-osm}
|
readonly OSM_USER=${OSM_USER:-osm}
|
||||||
readonly OSM_PASSWORD=${OSM_PASSWORD:-osm}
|
readonly OSM_PASSWORD=${OSM_PASSWORD:-osm}
|
||||||
|
|
||||||
function download_shp() {
|
|
||||||
local pbf_url=$1
|
|
||||||
wget --directory-prefix "$IMPORT_DATA_DIR" --no-clobber "$pbf_url"
|
|
||||||
cd $IMPORT_DATA_DIR
|
|
||||||
unzip water-polygons-split-3857.zip
|
|
||||||
rm water-polygons-split-3857.zip
|
|
||||||
}
|
|
||||||
|
|
||||||
function import_shp() {
|
function import_shp() {
|
||||||
local shp_file=$1
|
local shp_file=$1
|
||||||
shp2pgsql -g way $shp_file | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
|
shp2pgsql -g way "$shp_file" | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_index() {
|
function create_index() {
|
||||||
|
@ -29,23 +21,28 @@ function create_index() {
|
||||||
echo $index_command | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
|
echo $index_command | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
|
||||||
}
|
}
|
||||||
|
|
||||||
function main() {
|
function drop_water() {
|
||||||
if ! [ $WATER_SHP_DOWNLOAD_URL = false ]; then
|
local drop_command="DROP TABLE IF EXISTS water_polygons;"
|
||||||
download_shp $WATER_SHP_DOWNLOAD_URL
|
echo $drop_command | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
local shp_file
|
local shp_file
|
||||||
local _shp_file
|
local _shp_file
|
||||||
for _shp_file in "$IMPORT_DATA_DIR"/*.shp; do
|
for _shp_file in "$IMPORT_DATA_DIR"/*.shp; do
|
||||||
shp_file=$_shp_file
|
shp_file=$_shp_file
|
||||||
break
|
break
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Found shp file $shp_file"
|
echo "Found shp file $shp_file"
|
||||||
|
|
||||||
|
local table_name="water_polygons"
|
||||||
|
echo "Removing existing table $table_name"
|
||||||
|
drop_water
|
||||||
|
|
||||||
|
echo "Importing $shp_file into table $table_name"
|
||||||
import_shp $shp_file
|
import_shp $shp_file
|
||||||
|
|
||||||
echo "Create index water_polygons_index on table water_polygons"
|
echo "Create index water_polygons_index on table $table_name"
|
||||||
create_index
|
create_index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue