· 6 years ago · Jul 04, 2019, 06:04 PM
1SQLITE_DB_FILE=/data/search_history_new.db
2
3FROM python:3.7-alpine
4ARG sqlite_db_file
5WORKDIR /app
6RUN apk add --no-cache gcc musl-dev linux-headers sqlite
7COPY requirements.txt requirements.txt
8RUN pip install -r requirements.txt
9COPY . .
10RUN ./setup.sh ${sqlite_db_file}
11CMD ["flask", "run"]
12
13#!/bin/sh
14DB_FILE=${1:-'./.data/search_history.db'}
15echo "Checking for the existence of database file: ${DB_FILE}"
16if [ ! -f "$DB_FILE" -o ! -s "$DB_FILE" ]; then
17 echo "Database not initialized yet..."
18
19 echo "Creating database file..."
20 mkdir -p $(dirname "$DB_FILE")
21 touch "$DB_FILE"
22
23 echo "Done."
24fi
25
26echo "Executing database schema..."
27sqlite3 "$DB_FILE" < ./search_history/database/schema.sql
28
29echo "All set."
30
31DROP TABLE IF EXIStS search_history;
32
33CREATE TABLE search_history(
34 id VARCHAR(30) NOT NULL PRIMARY KEY,
35 created_at INTEGER NOT NULL DEFAULT CURRENT_TIMESTAMP,
36 full_address TEXT NOT NULL,
37 postal_code TEXT NOT NULL,
38 country_code TEXT NOT NULL,
39 latitude DECIMAL(10,7) NOT NULL,
40 longitude DECIMAL(10,7) NOT NULL,
41 temperature DECIMAL(6,2)
42);
43
44CREATE INDEX idx_postal_code_country_code on
45 search_history(postal_code, country_code);
46
47CREATE INDEX idx_created_at on
48 search_history(created_at DESC);
49
50version: '3'
51services:
52 server:
53 build:
54 context: .
55 args:
56 - sqlite_db_file=${SQLITE_DB_FILE}
57 env_file: .env
58 environment:
59 FLASK_APP: app.py
60 FLASK_RUN_HOST: 0.0.0.0
61 ports:
62 - "5000:5000"
63 volumes:
64 - ./.data:/data
65
66{
67 "message": "no such table: search_history"
68}