Files
ETAApi/v1/scripts/ci_functions.sh
2025-09-08 20:16:50 -06:00

72 lines
2.1 KiB
Bash

#! /bin/bash
REGISTRY_USER="registry"
REGISTRY_NAME="registry.cloud.etaviaporte.com"
REGISTRY_SERVER="registry.cloud.etaviaporte.com"
CONTAINER_VERSION="latest"
# Requirements
# Docker: Node v18-alpine
function build_docker(){
#Global ENV VAR: REGISTRY_NAME
#Global ENV VAR: CONTAINER_NAME
if [[ $# -lt 1 ]]; then
echo $0 "[conatiner name]"
return -1
fi
CONTAINER_NAME=$1
cat src/config/apiConfig.json > src/config/apiConfig_local.json
set -x
docker rmi -f "$REGISTRY_NAME/$CONTAINER_NAME"
docker buildx build --no-cache -t $REGISTRY_NAME/$CONTAINER_NAME ./
set +x
}
function upload_image(){
#Global ENV VAR: REGISTRY_NAME
#Global ENV VAR: CICD_REGISTRY_TOKEN
#Global ENV VAR: CONTAINER_NAME
docker login $REGISTRY_SERVER -u "$REGISTRY_USER" -p "$CICD_REGISTRY_TOKEN"
set -x
docker push "$REGISTRY_NAME/$CONTAINER_NAME":$CONTAINER_VERSION
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:$CONTAINER_VERSION
}
function deploy_local(){
# docker login --username $AWS_ECR_USER --password $DOCKER_PWD $REGISTRY_NAME
deploy_uservice $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $REGISTRY_NAME
}
function deploy(){
# Global ENV VAR: GITLAB_CICD_REGISTRY_TOKEN
# Global Env Var: REGISTRY_NAME
# Global Env Var: REGISTRY_USER
# Global Env Var: CONTAINER_NAME
# Global Env Var: PUBLIC_PORT
# Global Env Var: PRIVATE_PORT
# Global Env Var: SYSTEM_HOSTNAME
set -x
# ssh -i ~/.ssh/gitlab_runner gitlab-runner@$SYSTEM_HOSTNAME "docker login $REGISTRY_SERVER --username $REGISTRY_USER --password $GITLAB_CICD_REGISTRY_TOKEN && ./deploy_uservice.sh $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $REGISTRY_NAME && exit"
deploy_local
set +x
}