Skip to content

Commit 57e1899

Browse files
committed
move config up out of package
1 parent 7b69483 commit 57e1899

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed

Dockerfile

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# syntax=docker/dockerfile:1
2+
FROM python:3.10-slim
3+
WORKDIR /code
4+
5+
ENV FLASK_CONFIG=application.config.DevelopmentConfig
6+
ENV FLASK_APP=application.wsgi:app
7+
8+
ENV FLASK_RUN_HOST=0.0.0.0
9+
ENV FLASK_RUN_PORT=5050
10+
ENV FLASK_DEBUG=1
11+
12+
RUN apt-get update && apt-get install -y --no-install-recommends \
13+
gcc g++ git libproj-dev proj-bin gdal-bin wget gnupg2 \
14+
&& rm -rf /var/lib/apt/lists/*
15+
16+
17+
RUN echo "deb http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
18+
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
19+
20+
RUN apt-get update && \
21+
apt-get install -y postgresql-client-16 && \
22+
rm -rf /var/lib/apt/lists/*
23+
COPY . .
24+
RUN pip install -r requirements/requirements.txt
25+
RUN pip install -r requirements/dev-requirements.txt
26+
EXPOSE 5050
27+
CMD ["flask", "run", "--debug"]

Dockerfile.migrations

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# syntax=docker/dockerfile:1
2+
FROM python:3.10-slim
3+
WORKDIR /code
4+
5+
ENV FLASK_APP: application.wsgi:app
6+
ENV FLASK_CONFIG: application.config.DevelopmentConfig
7+
8+
RUN apt-get update && apt-get install -y --no-install-recommends \
9+
gcc g++ git libproj-dev proj-bin gdal-bin \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
COPY . .
13+
RUN pip install -r requirements/requirements.txt
14+
CMD [ "flask", "db", "upgrade" ]

application/config.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# -*- coding: utf-8 -*-
2+
import os
3+
4+
basedir = os.path.abspath(os.path.dirname(__file__))
5+
6+
7+
class Config:
8+
APP_ROOT = os.path.abspath(os.path.dirname(__file__))
9+
PROJECT_ROOT = os.path.abspath(os.path.join(APP_ROOT, os.pardir))
10+
SECRET_KEY = os.getenv("SECRET_KEY")
11+
DATABASE_URL = os.getenv("DATABASE_URL")
12+
if DATABASE_URL.startswith("postgres://"):
13+
DATABASE_URL = DATABASE_URL.replace("postgres://", "postgresql://")
14+
SQLALCHEMY_DATABASE_URI = DATABASE_URL
15+
SQLALCHEMY_TRACK_MODIFICATIONS = False
16+
SQLALCHEMY_RECORD_QUERIES = False
17+
DEBUG = False
18+
AUTHENTICATION_ON = True
19+
GOOGLE_PRIVATE_KEY_ID = os.getenv("GOOGLE_PRIVATE_KEY_ID")
20+
GOOGLE_PRIVATE_KEY = os.getenv("GOOGLE_PRIVATE_KEY")
21+
GOOGLE_CLIENT_EMAIL = os.getenv("GOOGLE_CLIENT_EMAIL")
22+
GOOGLE_CLIENT_ID = os.getenv("GOOGLE_CLIENT_ID")
23+
GITHUB_CLIENT_ID = os.getenv("GITHUB_CLIENT_ID")
24+
GITHUB_CLIENT_SECRET = os.getenv("GITHUB_CLIENT_SECRET")
25+
SAFE_URLS = set(os.getenv("SAFE_URLS", "").split(","))
26+
27+
28+
class DevelopmentConfig(Config):
29+
DEBUG = False
30+
ENV = "development"
31+
WTF_CSRF_ENABLED = False
32+
SQLALCHEMY_RECORD_QUERIES = True
33+
DEBUG_TB_INTERCEPT_REDIRECTS = False
34+
35+
36+
class TestConfig(Config):
37+
ENV = "test"
38+
DEBUG = True
39+
TESTING = True
40+
SERVER_NAME = "localhost"
41+
SQLALCHEMY_DATABASE_URI = (
42+
"postgresql://postgres:postgres@localhost/test_considerations"
43+
)
44+
AUTHENTICATION_ON = False

compose.yml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
services:
2+
web:
3+
build: .
4+
ports:
5+
- "5050:5050"
6+
develop:
7+
watch:
8+
- action: sync
9+
path: .
10+
target: /code
11+
depends_on:
12+
- db
13+
environment:
14+
SECRET_KEY: "replaceinprod"
15+
DATABASE_URL: "postgresql://postgres:password@db/planning-data-design"
16+
db:
17+
image: postgres:16-bullseye
18+
environment:
19+
POSTGRES_USER: postgres
20+
POSTGRES_PASSWORD: password
21+
POSTGRES_DB: planning-data-design
22+
expose:
23+
- "5432"
24+
ports:
25+
- "5432:5432"
26+
volumes:
27+
- pgdata:/var/lib/postgresql/data
28+
29+
migrations:
30+
build:
31+
context: .
32+
dockerfile: Dockerfile.migrations
33+
container_name: "migrations"
34+
depends_on:
35+
- db
36+
environment:
37+
DATABASE_URL: "postgresql://postgres:password@db/planning-data-design"
38+
39+
volumes:
40+
pgdata:

0 commit comments

Comments
 (0)