feat: Split v1 and v2 apis
This commit is contained in:
@@ -1,94 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Requirements
|
||||
# Docker: Node v18-alpine
|
||||
function build_docker(){
|
||||
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 "$AWS_ECR_REPO/$CONTAINER_NAME"
|
||||
docker buildx build --no-cache -t $AWS_ECR_REPO/$CONTAINER_NAME ./
|
||||
set +x
|
||||
}
|
||||
|
||||
function upload_image(){
|
||||
#Global ENV VAR: AWS_DEFAULT_REGION
|
||||
#Global ENV VAR: AWS_ECRWRITTER_ID
|
||||
#Global ENV VAR: AWS_ECRWRITTER_SECRET
|
||||
#Global ENV VAR: AWS_ECR_USER
|
||||
#Global ENV VAR: AWS_ECR_REPO
|
||||
#Global ENV VAR: CONTAINER_NAME
|
||||
mkdir .aws
|
||||
echo "[default]" > ./.aws/config
|
||||
echo "region = $AWS_DEFAULT_REGION" >> ./.aws/config
|
||||
echo "output = json" >> ./.aws/config
|
||||
echo "[default]" > ./.aws/credentials
|
||||
echo "aws_access_key_id = $AWS_ECRWRITTER_ID" >> ./.aws/credentials
|
||||
echo "aws_secret_access_key = $AWS_ECRWRITTER_SECRET" >> ./.aws/credentials
|
||||
DOCKER_PWD=$(docker run --rm -v ./.aws/:/root/.aws amazon/aws-cli ecr get-login-password)
|
||||
rm -rf ./.aws
|
||||
docker login -u $AWS_ECR_USER -p $DOCKER_PWD $AWS_ECR_REPO
|
||||
set -x
|
||||
docker push "$AWS_ECR_REPO/$CONTAINER_NAME":latest
|
||||
set +x
|
||||
}
|
||||
|
||||
function prepare_deployment(){
|
||||
# Global Env Var: AWS_DEFAULT_REGION
|
||||
# Global Env Var: AWS_ECRWRITTER_ID
|
||||
# Global Env Var: AWS_ECRWRITTER_SECRET
|
||||
# Global Env Var: SYSTEM_HOSTNAME
|
||||
#Generate Docker Access Token
|
||||
mkdir .aws
|
||||
echo "[default]" > ./.aws/config
|
||||
echo "region = $AWS_DEFAULT_REGION" >> ./.aws/config
|
||||
echo "output = json" >> ./.aws/config
|
||||
echo "[default]" > ./.aws/credentials
|
||||
echo "aws_access_key_id = $AWS_ECRWRITTER_ID" >> ./.aws/credentials
|
||||
echo "aws_secret_access_key = $AWS_ECRWRITTER_SECRET" >> ./.aws/credentials
|
||||
export DOCKER_PWD=$(docker run --rm -v ./.aws/:/root/.aws amazon/aws-cli ecr get-login-password)
|
||||
rm -rf ./.aws
|
||||
}
|
||||
|
||||
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(){
|
||||
# Global Env Var: AWS_ECR_USER
|
||||
# Global Env Var: AWS_ECR_REPO
|
||||
# Global Env Var: CONTAINER_NAME
|
||||
# Global Env Var: PUBLIC_PORT
|
||||
# Global Env Var: PRIVATE_PORT
|
||||
# Global Env Var: AWS_ECR_REPO
|
||||
# Global Env Var: SYSTEM_HOSTNAME
|
||||
prepare_deployment
|
||||
set -x
|
||||
ssh -i ~/.ssh/gitlab_runner gitlab-runner@$SYSTEM_HOSTNAME "docker login --username $AWS_ECR_USER --password $DOCKER_PWD $AWS_ECR_REPO && ./deploy_uservice.sh $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $AWS_ECR_REPO && exit"
|
||||
#deploy_local
|
||||
set +x
|
||||
}
|
||||
41
scripts/migrate.js
Normal file
41
scripts/migrate.js
Normal file
@@ -0,0 +1,41 @@
|
||||
'use strict';
|
||||
require('dotenv').config();
|
||||
const { ROOT_PATH, LIB_PATH, API_CONFIG } = process.env;
|
||||
const apiConfig = require( `${ROOT_PATH}/${API_CONFIG}` );
|
||||
const { getModel } = require( './src/lib/Models' );
|
||||
const mongoose = require('mongoose');
|
||||
const Model = getModel('loads');
|
||||
|
||||
mongoose.connect(
|
||||
apiConfig.mongodb,
|
||||
{ useNewUrlParser: true }
|
||||
).then( ( val ) => {
|
||||
console.log( `MongoDB Connected : ${ apiConfig.mongodb }` );
|
||||
});//catch throw error so service stops!
|
||||
|
||||
async function migrate(){
|
||||
const list = await Model.find({
|
||||
"postedBy":"65f11b7c02030a15ebd59a8f"
|
||||
},"createdAt").sort("-createdAt").exec();
|
||||
// let list = await Model.find({ _id : [ "64fce4083f60cc00182470e0", "65efaffaa2029862cd6d90ef",
|
||||
// "65f2679402030a15ebd59d63",
|
||||
// "65f3a64902030a15ebd5a4f6",
|
||||
// "6610bbc756c2a72c91085d5c"]
|
||||
// }, "createdAt" );
|
||||
|
||||
for (const element of list ){
|
||||
console.log( element );
|
||||
console.log( new Date(element.createdAt) );
|
||||
}
|
||||
|
||||
const date = Date.now();
|
||||
// console.log( list.length , affected );
|
||||
await mongoose.disconnect();
|
||||
return "Done";
|
||||
}
|
||||
|
||||
migrate().then( (out)=>{
|
||||
console.log( out );
|
||||
} ).catch( (error) => {
|
||||
console.error( error );
|
||||
});
|
||||
Reference in New Issue
Block a user