29 lines
716 B
Bash
Executable File
29 lines
716 B
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_ROOT=$(cd -- "$(dirname "${BASH_SOURCE[0]}")/.." &> /dev/null && pwd)
|
|
DOCKERFILE_PATH=./scripts/Dockerfile
|
|
IMAGE_NAME=blog
|
|
IMAGE_FILE_NAME=$IMAGE_NAME.tar.gz
|
|
REMOTE_SERVER=02
|
|
REMOTE_PATH=/srv/docker/nginx/www
|
|
DOCKER_NETWORK=docker_app-bridge
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
docker build -f $DOCKERFILE_PATH --platform linux/amd64 -t $IMAGE_NAME .
|
|
|
|
docker save $IMAGE_NAME | gzip > $IMAGE_FILE_NAME
|
|
|
|
scp $IMAGE_FILE_NAME $REMOTE_SERVER:$REMOTE_PATH
|
|
|
|
ssh $REMOTE_SERVER bash << EOF
|
|
set -euo pipefail
|
|
cd $REMOTE_PATH
|
|
docker load -i $IMAGE_FILE_NAME
|
|
docker rm -f $IMAGE_NAME || true
|
|
docker run -d --name $IMAGE_NAME --network $DOCKER_NETWORK $IMAGE_NAME
|
|
EOF
|
|
|
|
rm -f $IMAGE_FILE_NAME
|