Created
January 9, 2024 20:26
-
-
Save aweijnitz/4b94faa59ac5cebeb21a77fc887a5344 to your computer and use it in GitHub Desktop.
Deploy docker image to remote Docker Server via ssh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set -e | |
REMOTE_USERNAME="<REMOTE_USER_NAME>" | |
SSHKEY="<PATH_TO_SSH_KEY_HERE>" | |
REMOTE_HOST="<HOSTNAME_HERE>" | |
IMAGE_NAME="$1" # The name of the image including tag. Example: dockertest:1.0.0 | |
TAG_NAME="$2" | |
CONTAINER_NAME=$IMAGE_NAME | |
# Check if an argument is provided | |
if [ -z "$IMAGE_NAME" ]; then | |
echo "Usage: $0 <image_name tag_NAME> Example: $0 dockertest 1.0.0" | |
exit 1 | |
fi | |
echo "Building ${IMAGE_NAME}:${TAG_NAME}" | |
docker build -t $IMAGE_NAME:$TAG_NAME . | |
docker save $IMAGE_NAME:$TAG_NAME | bzip2 | pv | ssh -i $SSHKEY $REMOTE_USERNAME@$REMOTE_HOST 'bunzip2 | sudo docker load' | |
# Clean up | |
ssh -i $SSHKEY -tt $REMOTE_USERNAME@$REMOTE_HOST << EOF | |
sudo docker stop ${CONTAINER_NAME} | |
sudo docker wait ${CONTAINER_NAME} | |
sudo docker rm -f ${CONTAINER_NAME} | |
sudo docker run -d -p 7777:7777 --restart=unless-stopped --name ${CONTAINER_NAME} ${IMAGE_NAME}:${TAG_NAME} | |
sudo docker image prune -a --force | |
sudo docker ps | |
exit | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment