feat(CI): Adding CI deployment script
This commit is contained in:
45
scripts/ci_functions.sh
Executable file
45
scripts/ci_functions.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Requirements
|
||||
# Docker: Node v18-alpine
|
||||
function build_docker(){
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo $0 "[conatiner name]"
|
||||
return -1
|
||||
fi
|
||||
CONTAINER_NAME=$1
|
||||
|
||||
set -x
|
||||
docker rmi -f "$AWS_ECR_REPO/$CONTAINER_NAME"
|
||||
docker buildx build --no-cache -t $AWS_ECR_REPO/$CONTAINER_NAME ./
|
||||
set +x
|
||||
}
|
||||
|
||||
function deploy_uservice(){
|
||||
# CONTAINER NAME
|
||||
# PUBLIC PORT
|
||||
# PRIVATE PORT
|
||||
# ECR REPO
|
||||
if [[ $# -lt 4 ]]; then
|
||||
echo "$0 [container_name] [public port] [private port] [ecr_repo]"
|
||||
return -1
|
||||
fi
|
||||
container_name=$1
|
||||
public_port=$2
|
||||
private_port=$3
|
||||
ecr_repo=$4
|
||||
|
||||
docker stop $container_name && docker rm $container_name
|
||||
docker run -p"$public_port:$private_port" -d --restart unless-stopped --name $container_name $ecr_repo/$container_name:latest
|
||||
}
|
||||
|
||||
function deploy_local(){
|
||||
# docker login --username $AWS_ECR_USER --password $DOCKER_PWD $AWS_ECR_REPO
|
||||
deploy_uservice $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $AWS_ECR_REPO
|
||||
}
|
||||
|
||||
function deploy(){
|
||||
set -x
|
||||
deploy_local
|
||||
set +x
|
||||
}
|
||||
Reference in New Issue
Block a user