Merge branch 'master' of https://dev.azure.com/freeleaps/freeleaps-service-hub/_git/freeleaps-service-hub
This commit is contained in:
commit
e1c1738818
@ -4,25 +4,25 @@ FROM python:3.10-slim-bullseye
|
|||||||
ARG CONTAINER_APP_ROOT="/app"
|
ARG CONTAINER_APP_ROOT="/app"
|
||||||
ENV APP_NAME="authentication"
|
ENV APP_NAME="authentication"
|
||||||
|
|
||||||
ENV DEVSVC_WEBAPI_URL_BASE=""
|
ENV DEVSVC_WEBAPI_URL_BASE="http://devsvc:8007/api/devsvc"
|
||||||
ENV NOTIFICATION_WEBAPI_URL_BASE=""
|
ENV NOTIFICATION_WEBAPI_URL_BASE="http://notification:8003/api/notification/"
|
||||||
|
|
||||||
ENV JWT_SECRET_KEY=""
|
ENV JWT_SECRET_KEY="8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b"
|
||||||
ENV JWT_ALGORITHM=""
|
ENV JWT_ALGORITHM="HS256"
|
||||||
|
|
||||||
#site_settings
|
#site_settings
|
||||||
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
||||||
ENV SERVICE_API_ACCESS_PORT=8004
|
ENV SERVICE_API_ACCESS_PORT=8004
|
||||||
ENV MONGODB_NAME=
|
ENV MONGODB_NAME=freeleaps2
|
||||||
ENV MONGODB_PORT=
|
ENV MONGODB_PORT=27017
|
||||||
ENV MONGODB_URI=
|
ENV MONGODB_URI="mongodb://localhost:27017/"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#log_settings
|
#log_settings
|
||||||
ENV LOG_BASE_PATH=
|
ENV LOG_BASE_PATH=$CONTAINER_APP_ROOT/log/$APP_NAME
|
||||||
ENV BACKEND_LOG_FILE_NAME=
|
ENV BACKEND_LOG_FILE_NAME=$APP_NAME
|
||||||
ENV APPLICATION_ACTIVITY_LOG=
|
ENV APPLICATION_ACTIVITY_LOG=$APP_NAME-activity
|
||||||
|
|
||||||
|
|
||||||
WORKDIR ${CONTAINER_APP_ROOT}
|
WORKDIR ${CONTAINER_APP_ROOT}
|
||||||
|
|||||||
@ -109,24 +109,6 @@ class UserAuthHandler:
|
|||||||
def user_sign_out(self, token):
|
def user_sign_out(self, token):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def generate_auth_code_for_email(self, email: str) -> str:
|
|
||||||
"""send auth code to email address
|
|
||||||
|
|
||||||
Args:
|
|
||||||
email (str): email address
|
|
||||||
"""
|
|
||||||
auth_code = generate_auth_code()
|
|
||||||
expiry = datetime.now(timezone.utc) + timedelta(minutes=5)
|
|
||||||
auth_code_doc = AuthCodeDoc(
|
|
||||||
auth_code=auth_code,
|
|
||||||
method=email.lower(),
|
|
||||||
method_type=AuthType.EMAIL,
|
|
||||||
expiry=expiry,
|
|
||||||
)
|
|
||||||
|
|
||||||
await auth_code_doc.create()
|
|
||||||
return auth_code
|
|
||||||
|
|
||||||
async def verify_email_code(self, email: str, code: str) -> bool:
|
async def verify_email_code(self, email: str, code: str) -> bool:
|
||||||
"""sign in with email and code
|
"""sign in with email and code
|
||||||
|
|
||||||
|
|||||||
@ -1,25 +1,25 @@
|
|||||||
FROM python:3.10-slim-buster
|
FROM python:3.10-slim-buster
|
||||||
|
|
||||||
# docker settings
|
# docker settings
|
||||||
ARG CONTAINER_APP_ROOT=
|
ARG CONTAINER_APP_ROOT="/app"
|
||||||
ENV APP_NAME=
|
ENV APP_NAME="central_storage"
|
||||||
|
|
||||||
ENV AZURE_STORAGE_DOCUMENT_API_KEY=""
|
ENV AZURE_STORAGE_DOCUMENT_API_KEY="Cg+wtKpHt6Bo6bTUtjic40cRNRZ8NCI3JYBY69BNPgFJARVx/c18iVC7cASbJfzukyu4pksyhUep+AStFdpH7Q=="
|
||||||
ENV AZURE_STORAGE_DOCUMENT_API_ENDPOINT=""
|
ENV AZURE_STORAGE_DOCUMENT_API_ENDPOINT="https://freeleaps1document.blob.core.windows.net/"
|
||||||
|
|
||||||
#site_settings
|
#site_settings
|
||||||
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
||||||
ENV SERVICE_API_ACCESS_PORT=8005
|
ENV SERVICE_API_ACCESS_PORT=8005
|
||||||
ENV MONGODB_NAME=
|
ENV MONGODB_NAME=freeleaps2
|
||||||
ENV MONGODB_PORT=
|
ENV MONGODB_PORT=27017
|
||||||
ENV MONGODB_URI=
|
ENV MONGODB_URI="mongodb://localhost:27017/"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#log_settings
|
#log_settings
|
||||||
ENV LOG_BASE_PATH=
|
ENV LOG_BASE_PATH=$CONTAINER_APP_ROOT/log/$APP_NAME
|
||||||
ENV BACKEND_LOG_FILE_NAME=
|
ENV BACKEND_LOG_FILE_NAME=$APP_NAME
|
||||||
ENV APPLICATION_ACTIVITY_LOG=
|
ENV APPLICATION_ACTIVITY_LOG=$APP_NAME-activity
|
||||||
|
|
||||||
|
|
||||||
WORKDIR ${CONTAINER_APP_ROOT}
|
WORKDIR ${CONTAINER_APP_ROOT}
|
||||||
|
|||||||
@ -4,8 +4,8 @@ FROM python:3.10-slim-buster
|
|||||||
ARG CONTAINER_APP_ROOT="/app"
|
ARG CONTAINER_APP_ROOT="/app"
|
||||||
ENV APP_NAME="content"
|
ENV APP_NAME="content"
|
||||||
|
|
||||||
ENV FREELEAPS_WWW_AS_AZURE_CLIENT_SECRET=""
|
ENV FREELEAPS_WWW_AS_AZURE_CLIENT_SECRET="jTu8Q~WceiK-5dfZB44Ww-K4fVGi3_5tHNWYYbdX"
|
||||||
ENV CENTRAL_STORAGE_WEBAPI_URL_BASE=""
|
ENV CENTRAL_STORAGE_WEBAPI_URL_BASE="http://central_storage:8005/api/central_storage/"
|
||||||
|
|
||||||
#site_settings
|
#site_settings
|
||||||
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
ENV SERVICE_API_ACCESS_HOST=0.0.0.0
|
||||||
@ -17,9 +17,9 @@ ENV MONGODB_URI="mongodb://freeleaps2-mongodb:27017"
|
|||||||
|
|
||||||
|
|
||||||
#log_settings
|
#log_settings
|
||||||
ENV LOG_BASE_PATH=
|
ENV LOG_BASE_PATH=$CONTAINER_APP_ROOT/log/$APP_NAME
|
||||||
ENV BACKEND_LOG_FILE_NAME=
|
ENV BACKEND_LOG_FILE_NAME=$APP_NAME
|
||||||
ENV APPLICATION_ACTIVITY_LOG=
|
ENV APPLICATION_ACTIVITY_LOG=$APP_NAME-activity
|
||||||
|
|
||||||
|
|
||||||
WORKDIR ${CONTAINER_APP_ROOT}
|
WORKDIR ${CONTAINER_APP_ROOT}
|
||||||
|
|||||||
@ -4,29 +4,33 @@ from datetime import datetime, timedelta, timezone
|
|||||||
from backend.sharepoint.sharepoint_graph_client import SharePointGraphClient
|
from backend.sharepoint.sharepoint_graph_client import SharePointGraphClient
|
||||||
from common.constants.region import UserRegion
|
from common.constants.region import UserRegion
|
||||||
from backend.document.document_manager import DocumentManager
|
from backend.document.document_manager import DocumentManager
|
||||||
from backend.content.constants import ContentSource, ContentMediaType, ContentDataFormat, ContentFileConstants
|
from backend.content.constants import (
|
||||||
|
ContentSource,
|
||||||
|
ContentFileConstants,
|
||||||
|
)
|
||||||
from backend.content.models import ContentDirectory, ContentFolderDoc
|
from backend.content.models import ContentDirectory, ContentFolderDoc
|
||||||
|
|
||||||
|
|
||||||
class ContentSharePointManager:
|
class ContentSharePointManager:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.sharepoint_client = SharePointGraphClient(
|
self.sharepoint_client = SharePointGraphClient(
|
||||||
tenant_id='cf151ee8-5c2c-4fe7-a1c4-809ba43c9f24',
|
tenant_id="cf151ee8-5c2c-4fe7-a1c4-809ba43c9f24",
|
||||||
client_id='a91e3c1d-d55d-423d-83cb-a736df229817',
|
client_id="a91e3c1d-d55d-423d-83cb-a736df229817",
|
||||||
client_secret= app_settings.FREELEAPS_WWW_AS_AZURE_CLIENT_SECRET,
|
client_secret=app_settings.FREELEAPS_WWW_AS_AZURE_CLIENT_SECRET,
|
||||||
host_name="netorgft10898514.sharepoint.com",
|
host_name="netorgft10898514.sharepoint.com",
|
||||||
site_name="MediaRoom"
|
site_name="MediaRoom",
|
||||||
)
|
)
|
||||||
self.sharepoint_client.set_document_scope(
|
self.sharepoint_client.set_document_scope(
|
||||||
document_library="freeleaps",
|
document_library="freeleaps", root_folder="production"
|
||||||
root_folder="production"
|
|
||||||
)
|
)
|
||||||
self.share_point_file_expiry = timedelta(hours=24)
|
self.share_point_file_expiry = timedelta(hours=24)
|
||||||
|
|
||||||
def __generate_created__by__(self, folder_name):
|
def __generate_created__by__(self, folder_name):
|
||||||
return "content-service-" + folder_name.replace('/', '-').lower()
|
return "content-service-" + folder_name.replace("/", "-").lower()
|
||||||
|
|
||||||
async def retrieve_directories_for_folder(self, folder_name: str, region: UserRegion):
|
async def retrieve_directories_for_folder(
|
||||||
|
self, folder_name: str, region: UserRegion
|
||||||
|
):
|
||||||
content_folder_name = folder_name + "/" + region.name
|
content_folder_name = folder_name + "/" + region.name
|
||||||
sp_folders = self.sharepoint_client.list_sub_folders(content_folder_name)
|
sp_folders = self.sharepoint_client.list_sub_folders(content_folder_name)
|
||||||
current_time = datetime.now(timezone.utc)
|
current_time = datetime.now(timezone.utc)
|
||||||
@ -42,69 +46,89 @@ class ContentSharePointManager:
|
|||||||
udpate_time=current_time,
|
udpate_time=current_time,
|
||||||
update_source=ContentSource.SHAREPOINT,
|
update_source=ContentSource.SHAREPOINT,
|
||||||
valid_thru=current_time + self.share_point_file_expiry,
|
valid_thru=current_time + self.share_point_file_expiry,
|
||||||
region=region
|
region=region,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
folder.content_directories.clear()
|
folder.content_directories.clear()
|
||||||
|
|
||||||
for sp_folder in sp_folders:
|
for sp_folder in sp_folders:
|
||||||
content_directory = ContentDirectory(
|
content_directory = ContentDirectory(
|
||||||
content_name=sp_folder['name'],
|
content_name=sp_folder["name"],
|
||||||
cover_document_id=None,
|
cover_document_id=None,
|
||||||
summary_text=None,
|
summary_text=None,
|
||||||
title_text=None,
|
title_text=None,
|
||||||
content_link=None,
|
content_link=None,
|
||||||
content_document_id=None,
|
content_document_id=None,
|
||||||
)
|
)
|
||||||
sp_files = self.sharepoint_client.list_files(content_folder_name + "/" + sp_folder['name'])
|
sp_files = self.sharepoint_client.list_files(
|
||||||
|
content_folder_name + "/" + sp_folder["name"]
|
||||||
|
)
|
||||||
for sp_file in sp_files:
|
for sp_file in sp_files:
|
||||||
if (
|
if (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.COVER_FILE_NAME.lower()
|
== ContentFileConstants.COVER_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
cover_file_content = self.sharepoint_client.get_file_content(sp_file['id'])
|
cover_file_content = self.sharepoint_client.get_file_content(
|
||||||
|
sp_file["id"]
|
||||||
|
)
|
||||||
cover_document_manager = DocumentManager()
|
cover_document_manager = DocumentManager()
|
||||||
file_name=sp_file['name'].lower()
|
file_name = sp_file["name"].lower()
|
||||||
created_by=self.__generate_created__by__(folder_name=folder_name)
|
created_by = self.__generate_created__by__(folder_name=folder_name)
|
||||||
content_directory.cover_document_id = await cover_document_manager.save_document_file(
|
content_directory.cover_document_id = (
|
||||||
created_by, file_name, cover_file_content
|
await cover_document_manager.save_document_file(
|
||||||
|
created_by, file_name, cover_file_content
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.SUMMARY_FILE_NAME.lower()
|
== ContentFileConstants.SUMMARY_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_directory.summary_text = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_directory.summary_text = (
|
||||||
|
self.sharepoint_client.get_file_content(sp_file["id"])
|
||||||
|
)
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.TITLE_FILE_NAME.lower()
|
== ContentFileConstants.TITLE_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_directory.title_text = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_directory.title_text = (
|
||||||
|
self.sharepoint_client.get_file_content(sp_file["id"])
|
||||||
|
)
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.CONTENT_LINK_FILE_NAME.lower()
|
== ContentFileConstants.CONTENT_LINK_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_directory.content_link = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_directory.content_link = (
|
||||||
|
self.sharepoint_client.get_file_content(sp_file["id"])
|
||||||
|
)
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.CONTENT_HTML_FILE_NAME.lower()
|
== ContentFileConstants.CONTENT_HTML_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_directory.content_html = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_directory.content_html = (
|
||||||
|
self.sharepoint_client.get_file_content(sp_file["id"])
|
||||||
|
)
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.CONTENT_TEXT_FILE_NAME.lower()
|
== ContentFileConstants.CONTENT_TEXT_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_directory.content_text = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_directory.content_text = (
|
||||||
|
self.sharepoint_client.get_file_content(sp_file["id"])
|
||||||
|
)
|
||||||
elif (
|
elif (
|
||||||
sp_file['name'].lower()
|
sp_file["name"].lower()
|
||||||
== ContentFileConstants.CONTENT_PDF_FILE_NAME.lower()
|
== ContentFileConstants.CONTENT_PDF_FILE_NAME.lower()
|
||||||
):
|
):
|
||||||
content_file_content = self.sharepoint_client.get_file_content(sp_file['id'])
|
content_file_content = self.sharepoint_client.get_file_content(
|
||||||
|
sp_file["id"]
|
||||||
|
)
|
||||||
content_document_manager = DocumentManager()
|
content_document_manager = DocumentManager()
|
||||||
file_name=sp_file['name']
|
file_name = sp_file["name"]
|
||||||
created_by=self.__generate_created__by__(folder_name=folder_name)
|
created_by = self.__generate_created__by__(folder_name=folder_name)
|
||||||
content_directory.content_document_id = await content_document_manager.save_document_file(
|
content_directory.content_document_id = (
|
||||||
created_by, file_name, content_file_content
|
await content_document_manager.save_document_file(
|
||||||
|
created_by, file_name, content_file_content
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
folder.content_directories.append(content_directory)
|
folder.content_directories.append(content_directory)
|
||||||
@ -118,8 +142,10 @@ class ContentSharePointManager:
|
|||||||
current_time = datetime.now(timezone.utc)
|
current_time = datetime.now(timezone.utc)
|
||||||
folders = await ContentFolderDoc.find(
|
folders = await ContentFolderDoc.find(
|
||||||
ContentFolderDoc.update_source == ContentSource.SHAREPOINT,
|
ContentFolderDoc.update_source == ContentSource.SHAREPOINT,
|
||||||
ContentFolderDoc.valid_thru < current_time
|
ContentFolderDoc.valid_thru < current_time,
|
||||||
).to_list()
|
).to_list()
|
||||||
|
|
||||||
for folder in folders:
|
for folder in folders:
|
||||||
await self.retrieve_directories_for_folder(folder.folder_name, folder.region)
|
await self.retrieve_directories_for_folder(
|
||||||
|
folder.folder_name, folder.region
|
||||||
|
)
|
||||||
|
|||||||
@ -15,12 +15,12 @@ ENV SYSTEM_USER_ID=117f191e810c19729de860aa
|
|||||||
ENV SMS_FROM=+16898887156
|
ENV SMS_FROM=+16898887156
|
||||||
ENV EMAIL_FROM=freeleaps@freeleaps.com
|
ENV EMAIL_FROM=freeleaps@freeleaps.com
|
||||||
|
|
||||||
ENV SECRET_KEY=ea84edf152976b2fcec12b78aa8e45bc26a5cf0ef61bf16f5c317ae33b3fd8b0
|
ENV SECRET_KEY=8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b
|
||||||
|
|
||||||
ENV SENDGRID_API_KEY=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
|
ENV SENDGRID_API_KEY=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
|
||||||
|
|
||||||
ENV TWILIO_ACCOUNT_SID=ACf8c9283a6acda060258eadb29be58bc8
|
ENV TWILIO_ACCOUNT_SID=ACf8c9283a6acda060258eadb29be58bc8
|
||||||
ENV TWILIO_AUTH_TOKEN=ef160748cc22c8b7195b49df4b8eca7e
|
ENV TWILIO_AUTH_TOKEN=120165c0550111ddfd58efc97dafc2fe
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
25
sites/central_storage/deploy/.env
Normal file
25
sites/central_storage/deploy/.env
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
export APP_NAME=central_storage
|
||||||
|
export GIT_REPO_ROOT=/Users/yaojing/Work/Freeleaps/freeleaps-service-hub
|
||||||
|
export APP_PARENT_FOLDER=apps
|
||||||
|
export SERVICE_API_ACCESS_HOST=0.0.0.0
|
||||||
|
export SERVICE_API_ACCESS_PORT=8005
|
||||||
|
export CONTAINER_APP_ROOT=/app
|
||||||
|
export AZURE_STORAGE_DOCUMENT_API_KEY=xbiFtFeQ6v5dozgVM99fZ9huUomL7QcLu6s0y8zYHtIXZ8XdneKDMcg4liQr/9oNlVoRFcZhWjLY+ASt9cjICQ==
|
||||||
|
export AZURE_STORAGE_DOCUMENT_API_ENDPOINT="https://freeleaps1document.blob.core.windows.net/"
|
||||||
|
export LOG_BASE_PATH=$CONTAINER_APP_ROOT/log/$APP_NAME
|
||||||
|
export BACKEND_LOG_FILE_NAME=$APP_NAME
|
||||||
|
export APPLICATION_ACTIVITY_LOG=$APP_NAME-activity
|
||||||
|
export MONGODB_NAME=freeleaps2
|
||||||
|
export MONGODB_PORT=27017
|
||||||
|
export CODEBASE_ROOT=/Users/yaojing/Work/Freeleaps/freeleaps-service-hub/apps/central_storage
|
||||||
|
export WORKING_DIR=/Users/yaojing/Work/Freeleaps/freeleaps-service-hub/sites/central_storage/deploy
|
||||||
|
#!/bin/bash
|
||||||
|
export VENV_DIR=venv_t
|
||||||
|
export VENV_ACTIVATE=venv_t/bin/activate
|
||||||
|
export DOCKER_HOME=/var/lib/docker
|
||||||
|
export DOCKER_APP_HOME=$DOCKER_HOME/app
|
||||||
|
export DOCKER_BACKEND_HOME=$DOCKER_APP_HOME/$APP_NAME
|
||||||
|
export DOCKER_BACKEND_LOG_HOME=$DOCKER_BACKEND_HOME/log
|
||||||
|
export MONGODB_URI=mongodb://freeleaps2-mongodb:27017/
|
||||||
|
export FREELEAPS_ENV=dev
|
||||||
|
|
||||||
37
sites/central_storage/deploy/docker-compose.yaml
Executable file
37
sites/central_storage/deploy/docker-compose.yaml
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
services:
|
||||||
|
central_storage:
|
||||||
|
container_name: $APP_NAME
|
||||||
|
build:
|
||||||
|
context: ${CODEBASE_ROOT}
|
||||||
|
args:
|
||||||
|
CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT}
|
||||||
|
profiles: [prod,alpha,dev]
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- APP_NAME=${APP_NAME}
|
||||||
|
- MONGODB_NAME=${MONGODB_NAME}
|
||||||
|
- MONGODB_PORT=${MONGODB_PORT}
|
||||||
|
- MONGODB_URI=${MONGODB_URI}
|
||||||
|
- SERVICE_API_ACCESS_HOST=${SERVICE_API_ACCESS_HOST}
|
||||||
|
- SERVICE_API_ACCESS_PORT=${SERVICE_API_ACCESS_PORT}
|
||||||
|
- AZURE_STORAGE_DOCUMENT_API_KEY=${AZURE_STORAGE_DOCUMENT_API_KEY}
|
||||||
|
- AZURE_STORAGE_DOCUMENT_API_ENDPOINT=${AZURE_STORAGE_DOCUMENT_API_ENDPOINT}
|
||||||
|
- LOG_BASE_PATH=${LOG_BASE_PATH}
|
||||||
|
- BACKEND_LOG_FILE_NAME=${BACKEND_LOG_FILE_NAME}
|
||||||
|
- APPLICATION_ACTIVITY_LOG=${APPLICATION_ACTIVITY_LOG}
|
||||||
|
ports:
|
||||||
|
- ${SERVICE_API_ACCESS_PORT}:${SERVICE_API_ACCESS_PORT}
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
uvicorn webapi.main:app --reload --port=${SERVICE_API_ACCESS_PORT} --host=${SERVICE_API_ACCESS_HOST}
|
||||||
|
networks:
|
||||||
|
- devbox_freeleaps2-network
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: $DOCKER_BACKEND_LOG_HOME
|
||||||
|
target: $LOG_BASE_PATH
|
||||||
|
networks:
|
||||||
|
devbox_freeleaps2-network:
|
||||||
|
external: true
|
||||||
Loading…
Reference in New Issue
Block a user