95 lines
2.6 KiB
Bash
95 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
SERVER_CODIKI_ROOT_FOLDER='/home/florian/codiki-hexagonal'
|
|
SERVER_ADDRESS='192.168.0.153'
|
|
SERVER_USER='florian'
|
|
SERVER_PORT='22'
|
|
|
|
function handle_error() {
|
|
local resultCode=$1
|
|
if [[ $resultCode -ne 0 ]]
|
|
then
|
|
echo "$errorMessage"
|
|
echo
|
|
exit 1
|
|
else
|
|
echo 'Operation succeded.'
|
|
echo
|
|
fi
|
|
}
|
|
|
|
function change_configuration_files() {
|
|
echo 'Copy production configuration file of backend...'
|
|
cp ./ci/configuration/backend/application-prod.yml ./backend/codiki-launcher/src/main/resources/application-prod.yml
|
|
handle_error $?
|
|
}
|
|
|
|
function build_backend() {
|
|
echo 'Backend docker image building...'
|
|
docker build -t codiki-backend -f ./Dockerfile-backend . --no-cache
|
|
handle_error $?
|
|
}
|
|
|
|
function build_frontend() {
|
|
echo 'Frontend docker image building...'
|
|
docker build -t codiki-frontend -f ./Dockerfile-frontend . --no-cache
|
|
handle_error $?
|
|
}
|
|
|
|
function extract_docker_images() {
|
|
echo 'Extraction of backend docker image into an archive...'
|
|
docker save codiki-backend:latest -o ./ci/bin/codiki-backend.tar
|
|
handle_error $?
|
|
|
|
echo 'Extraction of frontend docker image into an archive...'
|
|
docker save codiki-frontend:latest -o ./ci/bin/codiki-frontend.tar
|
|
handle_error $?
|
|
}
|
|
|
|
function copy_docker_compose_file_in_bin_folder() {
|
|
echo 'Copy of docker compose file in bin folder...'
|
|
cp ./docker-compose.yml ./ci/bin/docker-compose.yml
|
|
handle_error $?
|
|
}
|
|
|
|
function upload_files_on_server() {
|
|
echo 'Sending of docker images on server'
|
|
scp -P $SERVER_PORT ./ci/bin/* $SERVER_USER@$SERVER_ADDRESS:$SERVER_CODIKI_ROOT_FOLDER/
|
|
handle_error $?
|
|
}
|
|
|
|
# execute_remote_command_on_server
|
|
function ercos() {
|
|
local command=$1
|
|
ssh -p $SERVER_PORT -l $SERVER_USER $SERVER_ADDRESS $command
|
|
handle_error $1
|
|
}
|
|
|
|
function deploy_docker_images_on_server() {
|
|
echo 'Import backend docker image archive on server...'
|
|
ercos "docker load < $SERVER_CODIKI_ROOT_FOLDER/codiki-backend.tar"
|
|
|
|
echo 'Import frontend docker image archive on server...'
|
|
ercos "docker load < $SERVER_CODIKI_ROOT_FOLDER/codiki-frontend.tar"
|
|
}
|
|
|
|
function restart_services() {
|
|
echo 'Stop services on server...'
|
|
ercos "cd $SERVER_CODIKI_ROOT_FOLDER && docker compose down"
|
|
|
|
echo 'Start services on server...'
|
|
ercos "cd $SERVER_CODIKI_ROOT_FOLDER && docker compose up --detach"
|
|
}
|
|
|
|
function main() {
|
|
change_configuration_files
|
|
build_backend
|
|
build_frontend
|
|
extract_docker_images
|
|
copy_docker_compose_file_in_bin_folder
|
|
upload_files_on_server
|
|
deploy_docker_images_on_server
|
|
restart_services
|
|
}
|
|
|
|
main |