Update: new deploy flow for AWS

This commit is contained in:
dx-tan 2023-12-22 10:54:04 +07:00
parent 5efb9220cb
commit 640c7504c4
9 changed files with 36 additions and 24 deletions

View File

@ -1,2 +1 @@
.git
weights/

1
.gitignore vendored
View File

@ -28,3 +28,4 @@ curl.md
cope2n-api/fwd_api/commands/init_database.py
/data
backup
demo-ocr/

View File

@ -5,4 +5,3 @@ __pycache__
DataBase/image_temp/
DataBase/json_temp/
DataBase/template.db
weights

@ -1 +1 @@
Subproject commit bdba044bb2eacac7c7cfe0e0f321196d03b681f6
Subproject commit a471c1018c17cc917d1723776bae81f829450f95

View File

@ -19,6 +19,6 @@ COPY --chown=${UID}:${GID} requirements.txt /app
WORKDIR /app
RUN pip install -r requirements.txt --no-cache-dir
# COPY --chown=${UID}:${GID} . /app
COPY --chown=${UID}:${GID} . /app
ENV TZ="Asia/Ho_Chi_Minh"

@ -1 +0,0 @@
Subproject commit 036226c29ecd4aa0e28e89880c7b331523266caa

View File

@ -4,6 +4,7 @@ import random
import string
import os
import boto3
from datetime import datetime
BASH_FILE = './deploy_images.sh'
S3_ENDPOINT = ""
@ -75,6 +76,8 @@ def random_hash():
def deploy():
# Define the variable
tag = str(random_hash()[:8])
now = datetime.now()
tag = tag + "_" + str(now.strftime("%d%m%y%H%M%S"))
print(tag)
# Execute the Bash script with the variable as a command-line argument
@ -85,14 +88,20 @@ def deploy():
# TODO: Update to S3
s3_client = MinioS3Client(S3_ACCESS_KEY, S3_SECRET_KEY, S3_BUCKET, S3_ENDPOINT)
local_compose_file = f"./docker-compose_{tag}.yml"
local_env_file = f"./.env_{tag}.yml"
local_env_file = f"./.env_{tag}"
s3_compose_file = f"docker-yaml-files/docker-compose_{tag}.yml"
s3_env_file = f"env-files/.env_{tag}.yml"
s3_env_file = f"env-files/.env_{tag}"
print(f"[INFO]: Uploading compose and env file to s3...")
s3_client.upload_file(local_compose_file, s3_compose_file)
s3_client.upload_file(local_env_file, s3_env_file)
print(f"[INFO]: Deleting files...")
os.remove(local_compose_file)
os.remove(local_env_file)
print(f"[INFO]: Done !!!")
if __name__=="__main__":
deploy()

View File

@ -1,21 +1,23 @@
#!/bin/bash
docker compose -f docker-compose-dev.yml build
tag=$1
echo "Tag received from Python: $tag"
echo "[INFO] Tag received from Python: $tag"
echo "Building AI image with tag: $tag..."
echo "[INFO] Pushing AI image with tag: $tag..."
docker compose -f docker-compose-dev.yml build cope2n-fi-sbt
docker tag sidp/cope2n-ai-fi-sbt:latest public.ecr.aws/v4n9y6r8/sidp/cope2n-ai-fi-sbt:${tag}
# docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-ai-fi-sbt:${tag}
docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-ai-fi-sbt:${tag}
echo "Building BE image with tag: $tag..."
echo "[INFO] Pushing BE image with tag: $tag..."
docker compose -f docker-compose-dev.yml build be-ctel-sbt
docker tag sidp/cope2n-be-fi-sbt:latest public.ecr.aws/v4n9y6r8/sidp/cope2n-be-fi-sbt:${tag}
# docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-ai-fi-sbt:${tag}
docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-be-fi-sbt:${tag}
echo "Building BE image with tag: $tag..."
echo "[INFO] Pushing FE image with tag: $tag..."
docker compose -f docker-compose-dev.yml build fe-sbt
docker tag sidp/cope2n-fe-fi-sbt:latest public.ecr.aws/v4n9y6r8/sidp/cope2n-fe-fi-sbt:${tag}
# docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-ai-fi-sbt:${tag}
docker push public.ecr.aws/v4n9y6r8/sidp/cope2n-fe-fi-sbt:${tag}
cp ./docker-compose.yml ./docker-compose_${tag}.yml
sed -i "s/{{tag}}/$tag/g" ./docker-compose_${tag}.yml

View File

@ -34,7 +34,7 @@ services:
command: bash run.sh
deploy:
mode: replicated
replicas: 3
replicas: 1
# Back-end services
be-ctel-sbt:
build:
@ -69,12 +69,14 @@ services:
- S3_SECRET_KEY=${S3_SECRET_KEY}
- S3_BUCKET_NAME=${S3_BUCKET_NAME}
restart: always
ports:
- 9000:9000
networks:
- ctel-sbt
volumes:
- ${HOST_MEDIA_FOLDER}:${MEDIA_ROOT}
- ./data/BE_static:/app/static
- ./cope2n-api:/app
- BE_static:/app/static
# - ./cope2n-api:/app
working_dir: /app
depends_on:
db-sbt:
@ -160,7 +162,7 @@ services:
condition: service_started
volumes:
- ${HOST_MEDIA_FOLDER}:${MEDIA_ROOT}
- ./cope2n-api:/app
# - ./cope2n-api:/app
working_dir: /app
command: sh -c "celery -A fwd_api.celery_worker.worker worker -l INFO -c 5"
@ -201,7 +203,7 @@ services:
shm_size: 10gb
privileged: true
ports:
- 80:80
- 9881:80
depends_on:
be-ctel-sbt:
condition: service_started
@ -211,9 +213,10 @@ services:
- VITE_PROXY=http://be-ctel-sbt:${BASE_PORT}
- VITE_API_BASE_URL=http://fe-sbt:80
volumes:
- ./data/BE_static:/backend-static
- BE_static:/backend-static
networks:
- ctel-sbt
volumes:
db_data:
BE_static: