Bake water import file into Docker image

pull/48/head
Lukas Martinelli 2015-10-27 09:31:43 +01:00
rodzic e3f60d8771
commit 05acd1db10
4 zmienionych plików z 24 dodań i 33 usunięć

Wyświetl plik

@ -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
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- mkdir -p TRAVIS_BUILD_DIR/import
- wget -nc -P "$TRAVIS_BUILD_DIR/import" "https://s3.amazonaws.com/metro-extracts.mapzen.com/zurich_switzerland.osm.pbf"
- 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"
- wget -nc -P "$HOME/cache" "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"
install:
- docker-compose build
before_script:
@ -25,5 +22,4 @@ script:
- curl "http://localhost:8080/index.json"
cache:
directories:
- ./cache
- $HOME/cache

Wyświetl plik

@ -30,8 +30,6 @@ import:
OSM_PASSWORD: "suisse"
import-water:
build: ./src/import-water
volumes:
- ./import:/data/import
links:
- postgis:db
environment:

Wyświetl plik

@ -1,15 +1,15 @@
FROM mdillon/postgis:9.4
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
wget unzip \
--no-install-recommends
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
unzip \
&& 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
COPY import.sh /usr/src/app/
WORKDIR /usr/src/app
VOLUME /data/import
ENV IMPORT_DATA_DIR=/data/import
CMD ["./import.sh"]

Wyświetl plik

@ -11,17 +11,9 @@ readonly OSM_DB=${OSM_DB:-osm}
readonly OSM_USER=${OSM_USER:-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() {
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() {
@ -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"
}
function main() {
if ! [ $WATER_SHP_DOWNLOAD_URL = false ]; then
download_shp $WATER_SHP_DOWNLOAD_URL
fi
function drop_water() {
local drop_command="DROP TABLE IF EXISTS water_polygons;"
echo $drop_command | PG_PASSWORD=$OSM_PASSWORD psql --host="$DB_HOST" --port=5432 --dbname="$OSM_DB" --username="$OSM_USER"
}
function main() {
local shp_file
local _shp_file
for _shp_file in "$IMPORT_DATA_DIR"/*.shp; do
shp_file=$_shp_file
break
shp_file=$_shp_file
break
done
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
echo "Create index water_polygons_index on table water_polygons"
echo "Create index water_polygons_index on table $table_name"
create_index
}