riju/tools/deploy.bash

41 lines
785 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
if [[ -z "${DEPLOY_SSH_PRIVATE_KEY:-}" ]]; then
: ${DEPLOY_SSH_PUBLIC_KEY_FILE}
DEPLOY_SSH_PRIVATE_KEY="$(base64 < "${DEPLOY_SSH_PUBLIC_KEY_FILE%.pub}")"
fi
: ${DOMAIN}
if (( $# != 1 )); then
echo "usage: deploy.bash IMAGE" >&2
exit 1
fi
image="$1"
if [[ -z "${DEPLOY_SSH_PRIVATE_KEY:-}" ]]; then
DEPLOY_SSH_PRIVATE_KEY="$(base64 < "${DEPLOY_SSH_PUBLIC_KEY_FILE%.pub}")"
fi
: ${DOCKER_REPO}
: ${DOMAIN}
tmpdir="$(mktemp -d)"
function cleanup {
rm -rf "${tmpdir}"
}
trap cleanup EXIT
base64 -d <<< "${DEPLOY_SSH_PRIVATE_KEY}" > "${tmpdir}/id"
chmod go-rwx "${tmpdir}/id"
ssh -o IdentitiesOnly=yes \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-i "${tmpdir}/id" "deploy@${DOMAIN}"