feat: moved deployment to docker compose
This commit is contained in:
parent
cbbbf24259
commit
cd531b1ae4
17
.env.example
17
.env.example
|
@ -1,3 +1,4 @@
|
||||||
|
# OAUTH
|
||||||
OAUTH_CLIENT_ID = ""
|
OAUTH_CLIENT_ID = ""
|
||||||
OAUTH_CLIENT_SECRET = ""
|
OAUTH_CLIENT_SECRET = ""
|
||||||
OAUTH_REDIRECT_URI = "http://localhost:8080/callback"
|
OAUTH_REDIRECT_URI = "http://localhost:8080/callback"
|
||||||
|
@ -5,11 +6,13 @@ OAUTH_URL_AUTHORIZE = "https://www.bling.com.br/Api/v3/oauth/authorize"
|
||||||
OAUTH_URL_ACCESS_TOKEN = "https://www.bling.com.br/Api/v3/oauth/token"
|
OAUTH_URL_ACCESS_TOKEN = "https://www.bling.com.br/Api/v3/oauth/token"
|
||||||
|
|
||||||
# DATABASE
|
# DATABASE
|
||||||
DB_NAME = 'ajusta_bling'
|
POSTGRES_USER = 'ajusta_bling'
|
||||||
DB_USER = 'ajusta_bling'
|
POSTGRES_PASSWORD = 'ajusta_bling'
|
||||||
DB_PASS = 'ajusta_bling'
|
POSTGRES_DB = 'ajusta_bling'
|
||||||
DB_HOST = 'winhost'
|
|
||||||
DB_PORT = '5432'
|
# FLASK
|
||||||
|
FLASK_HOST = "0.0.0.0"
|
||||||
|
FLASK_PORT = 8080
|
||||||
|
FLASK_ENV=development
|
||||||
|
|
||||||
|
|
||||||
WEB_HOST = "0.0.0.0"
|
|
||||||
WEB_PORT = "8080"
|
|
||||||
|
|
19
Dockerfile
Normal file
19
Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
FROM python:3.12-alpine3.20
|
||||||
|
|
||||||
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
ENV PYTHONPATH /ajusta_bling
|
||||||
|
ENV FLASK_APP ajusta_bling.__main__
|
||||||
|
ENV FLASK_RUN_HOST 0.0.0.0
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
RUN pip install --no-cache-dir setuptools wheel
|
||||||
|
RUN pip install --no-cache-dir -e .
|
||||||
|
|
||||||
|
EXPOSE 5000
|
||||||
|
|
||||||
|
CMD ["python", "-m", "ajusta_bling"]
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
from typing import Sequence
|
from typing import Sequence
|
||||||
|
|
||||||
from dotenv import load_dotenv
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This is always the entry point so you don't technically need to do the
|
This is always the entry point so you don't technically need to do the
|
||||||
__name__ == "__main__" check, but its still common practice to show that
|
__name__ == "__main__" check, but its still common practice to show that
|
||||||
|
@ -44,7 +41,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
type=str,
|
type=str,
|
||||||
action=EnvDefault,
|
action=EnvDefault,
|
||||||
required=True,
|
required=True,
|
||||||
envvar="DB_USER",
|
envvar="POSTGRES_USER",
|
||||||
help="PostgreSQL User",
|
help="PostgreSQL User",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -52,25 +49,22 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
"--dbpassword", "-dP",
|
"--dbpassword", "-dP",
|
||||||
type=str,
|
type=str,
|
||||||
action=EnvDefault,
|
action=EnvDefault,
|
||||||
envvar="DB_PASS",
|
envvar="POSTGRES_PASSWORD",
|
||||||
help="PostgreSQL Password",
|
help="PostgreSQL Password",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--dbhost", "-dh",
|
"--dbhost", "-dh",
|
||||||
type=str,
|
type=str,
|
||||||
action=EnvDefault,
|
required=False,
|
||||||
required=True,
|
default='db',
|
||||||
envvar="DB_HOST",
|
|
||||||
help="PostgreSQL Host",
|
help="PostgreSQL Host",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--dbport", "-dp",
|
"--dbport", "-dp",
|
||||||
type=int,
|
type=int,
|
||||||
action=EnvDefault,
|
default=5432,
|
||||||
required=True,
|
|
||||||
envvar="DB_PORT",
|
|
||||||
help="PostgreSQL Port",
|
help="PostgreSQL Port",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -79,7 +73,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
type=str,
|
type=str,
|
||||||
action=EnvDefault,
|
action=EnvDefault,
|
||||||
required=True,
|
required=True,
|
||||||
envvar="DB_NAME",
|
envvar="POSTGRES_DB",
|
||||||
help="PostgreSQL Database",
|
help="PostgreSQL Database",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -88,26 +82,24 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
type=str,
|
type=str,
|
||||||
action=EnvDefault,
|
action=EnvDefault,
|
||||||
required=True,
|
required=True,
|
||||||
envvar="WEB_HOST",
|
envvar="FLASK_HOST",
|
||||||
help="Web server host",
|
help="Web server host",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--webport", "-wp",
|
"--webport", "-wp",
|
||||||
type=int,
|
type=int,
|
||||||
action=EnvDefault,
|
default=5000,
|
||||||
required=True,
|
|
||||||
envvar="WEB_PORT",
|
|
||||||
help="Web server port",
|
help="Web server port",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--debug",
|
"--env",
|
||||||
type=bool,
|
type=str,
|
||||||
action=EnvDefault,
|
action=EnvDefault,
|
||||||
envvar="WEB_DEBUG",
|
envvar="FLASK_ENV",
|
||||||
default=False,
|
default=False,
|
||||||
help="Enable web server debug",
|
help="Changes flask environment",
|
||||||
)
|
)
|
||||||
|
|
||||||
args = parser.parse_args(argv)
|
args = parser.parse_args(argv)
|
||||||
|
@ -121,5 +113,4 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
load_dotenv(".env")
|
|
||||||
raise SystemExit(main())
|
raise SystemExit(main())
|
|
@ -12,4 +12,4 @@ class Args:
|
||||||
webhost: str
|
webhost: str
|
||||||
webport: int
|
webport: int
|
||||||
|
|
||||||
debug: bool = True
|
env: str
|
||||||
|
|
39
docker-compose.yaml
Normal file
39
docker-compose.yaml
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build: .
|
||||||
|
container_name: ajusta_bling_app
|
||||||
|
ports:
|
||||||
|
- "${FLASK_PORT}:5000"
|
||||||
|
environment:
|
||||||
|
- FLASK_HOST
|
||||||
|
- FLASK_PORT
|
||||||
|
- FLASK_ENV
|
||||||
|
- OAUTH_CLIENT_ID
|
||||||
|
- OAUTH_CLIENT_SECRET
|
||||||
|
- OAUTH_REDIRECT_URI
|
||||||
|
- OAUTH_URL_AUTHORIZE
|
||||||
|
- OAUTH_URL_ACCESS_TOKEN
|
||||||
|
- POSTGRES_USER
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
- POSTGRES_DB
|
||||||
|
volumes:
|
||||||
|
- ./ajusta_bling:/app/ajusta_bling
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: always
|
||||||
|
command: >
|
||||||
|
sh -c "python3.12 -m ajusta_bling"
|
||||||
|
db:
|
||||||
|
image: postgres:16.3-alpine3.20
|
||||||
|
container_name: ajusta_bling_db
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
- POSTGRES_DB
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
Loading…
Reference in New Issue
Block a user