2020-11-14 21:27:16 +00:00
#!/bin/bash
set -e
2020-11-14 22:11:03 +00:00
set -o pipefail
2020-11-14 21:27:16 +00:00
PLUGIN_SOURCE = ${ PLUGIN_SOURCE :- . }
PLUGIN_HOST = ${ PLUGIN_HOST :- swarm .autonomic.zone }
PLUGIN_PORT = ${ PLUGIN_PORT :- 222 }
PLUGIN_USER = ${ PLUGIN_USER :- drone }
PLUGIN_DEST = ${ PLUGIN_DEST : ?dest is not set }
REMOTE_DOCKER_HOST = " ssh:// $PLUGIN_USER @ $PLUGIN_HOST : $PLUGIN_PORT "
load_deploy_key( ) {
echo "--- start ssh key load ---"
mkdir -p " $HOME /.ssh/ "
ssh-keyscan -p " $PLUGIN_PORT " " $PLUGIN_HOST " >> " $HOME /.ssh/known_hosts "
# shellcheck disable=SC2046,SC2006
eval ` ssh-agent`
echo " $PLUGIN_DEPLOY_KEY " | ssh-add -
echo "--- end ssh key load ---"
}
output_versions( ) {
echo "--- start versions"
docker version
echo "--- end versions"
}
run_docker_cp( ) {
echo "--- start deploy ---"
2021-12-10 20:22:35 +00:00
2023-11-17 12:59:42 +00:00
CONTAINER = $( docker -H " $REMOTE_DOCKER_HOST " container ls -q -f " name=/ $PLUGIN_SERVICE " )
2020-11-14 22:52:31 +00:00
2020-11-14 21:39:12 +00:00
if [ -z " $CONTAINER " ] ; then
2020-11-14 21:27:16 +00:00
echo " ERROR: can't find container for $PLUGIN_SERVICE "
return 1
fi
2020-11-14 22:52:31 +00:00
2022-03-07 12:46:56 +00:00
NEWL = $( echo " $CONTAINER " | grep -c '$' )
if [ [ $NEWL != 1 ] ] ; then
echo " There are $NEWL containers running with the name $PLUGIN_SERVICE . I don't know which one should i copy your files to. Check your containers and stop the unnecessary ones, then restart this script. "
echo -e " Containers digests: \n $CONTAINER "
return 1
fi
2020-11-14 22:52:31 +00:00
CD = ""
if [ -n " $PLUGIN_CHDIR " ] ; then
CD = " -C $PLUGIN_CHDIR "
fi
2024-01-23 01:32:16 +00:00
echo "--- start exec_pre ---"
if [ -n " $PLUGIN_EXEC_PRE " ] ; then
docker -H " $REMOTE_DOCKER_HOST " exec " $CONTAINER " sh -c " mkdir -p /root/.ssh && echo \" $PLUGIN_DEPLOY_KEY \" > /root/.ssh/id_rsa && chmod -R 600 /root/.ssh && $PLUGIN_EXEC_PRE "
fi
2024-01-23 01:41:16 +00:00
echo "--- end exec_pre ---"
2024-01-23 01:32:16 +00:00
2020-11-14 22:13:55 +00:00
echo " Copying $PLUGIN_SOURCE "
2020-11-14 22:10:33 +00:00
# shellcheck disable=SC2086
2020-11-14 22:52:31 +00:00
tar cf - $CD $PLUGIN_SOURCE | docker -H " $REMOTE_DOCKER_HOST " cp - $CONTAINER :$PLUGIN_DEST
2022-03-07 12:46:56 +00:00
2021-12-16 16:18:30 +00:00
echo "--- start exec ---"
2021-12-10 20:22:35 +00:00
if [ -n " $PLUGIN_EXEC " ] ; then
2022-08-09 15:30:46 +00:00
docker -H " $REMOTE_DOCKER_HOST " exec " $CONTAINER " sh -c " mkdir -p /root/.ssh && echo \" $PLUGIN_DEPLOY_KEY \" > /root/.ssh/id_rsa && chmod -R 600 /root/.ssh && $PLUGIN_EXEC "
2021-12-10 20:22:35 +00:00
fi
2021-12-16 16:18:30 +00:00
echo "--- end exec ---"
2021-12-10 20:22:35 +00:00
2020-11-14 21:27:16 +00:00
echo "--- end deploy ---"
}
run_plugin( ) {
echo "--- start docker-cp-deploy ---"
load_deploy_key
output_versions
run_docker_cp
echo "--- end docker-cp-deploy ---"
}
run_plugin