Listing 2. The Dockerfile to create the database server also pulls down the needed geographical data.11833l2.qrk countries.txt && \ rm countryInfo.txt && \ wget 'http://download.geonames.org/export/dump/cities1000.zip' && \ unzip cities1000.zip && \ rm cities1000.zip RUN echo "\ CREATE DATABASE IF NOT EXISTS world; \ USE world; \ DROP TABLE IF EXISTS countries; \ CREATE TABLE countries ( \ id CHAR(2), \ ignore1 CHAR(3), \ ignore2 CHAR(3), \ ignore3 CHAR(2), \ name VARCHAR(50), \ capital VARCHAR(50), \ PRIMARY KEY (id)); \ LOAD DATA LOCAL INFILE 'countries.txt' \ INTO TABLE countries \ FIELDS TERMINATED BY '\t'; \ DROP TABLE IF EXISTS cities; \ CREATE TABLE cities ( \ id NUMERIC(8), \ name VARCHAR(200), \ asciiname VARCHAR(200), \ alternatenames TEXT, \ latitude NUMERIC(10,5), \ longitude NUMERIC(10,5), \ ignore1 CHAR(1), \ ignore2 VARCHAR(10), \ country CHAR(2)); \ LOAD DATA LOCAL INFILE 'cities1000.txt' \ INTO TABLE cities \ FIELDS TERMINATED BY '\t'; \ " > mydbcommands.sql RUN echo "#!/bin/bash \n \ mysql -h localhost -u root -p\$MYSQL_ROOT_PASSWORD loaddata.sh && \ chmod +x loaddata.sh