diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2957dd3..701efda 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: echo "IMAGE_TAG_LATEST=${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRY_BUCKET}/${DOCKER_IMAGE_NAME}:latest" >> $GITHUB_ENV - name: Build docker image run: | - docker build . --tag $IMAGE_NAME + docker build . --build-arg APP_VERSION=$RELEASE_VERSION --tag $IMAGE_NAME - name: Tag the image run: | docker tag $IMAGE_NAME $IMAGE_TAG_RELEASE diff --git a/app/config/settings.py b/app/config/settings.py index 8a7b9ac..308b651 100644 --- a/app/config/settings.py +++ b/app/config/settings.py @@ -15,6 +15,10 @@ class Settings(BaseSettings): default="", json_schema_extra={"env": "APP_DESCRIPTION"}, ) + app_version: str = Field( + default="development", + json_schema_extra={"env": "APP_VERSION"}, + ) env: str = Field(default="development", json_schema_extra={"env": "APP_ENV"}) cors_allowed_origins: str = Field( diff --git a/app/main.py b/app/main.py index 99feb7b..560f055 100644 --- a/app/main.py +++ b/app/main.py @@ -25,7 +25,7 @@ app = FastAPI( title=settings.app_name, description=settings.app_description, - version="1.0.0", + version=settings.app_version, ) app.add_middleware( diff --git a/dockerfile b/dockerfile index fa14676..c940e26 100644 --- a/dockerfile +++ b/dockerfile @@ -1,6 +1,8 @@ # Use official Python slim image FROM python:3.11-slim +ARG APP_VERSION=development + WORKDIR /app # system deps @@ -17,5 +19,6 @@ COPY . . EXPOSE 8000 ENV WORKERS=3 +ENV APP_VERSION=${APP_VERSION} CMD ["sh", "-c", "uvicorn app.main:app --host 0.0.0.0 --port 8000 --proxy-headers --workers ${WORKERS}"] diff --git a/env.example b/env.example index fa52b5a..7d0762e 100644 --- a/env.example +++ b/env.example @@ -1,6 +1,7 @@ # App APP_NAME= APP_DESCRIPTION= +APP_VERSION= APP_ENV= # CORS