32 lines
850 B
Bash
Executable file
32 lines
850 B
Bash
Executable file
#!/bin/bash
|
|
|
|
IMAGE="$1"
|
|
shift
|
|
|
|
REMOTE="$1"
|
|
shift
|
|
|
|
DIR="/tmp/docker-devtools/infrastructure/${IMAGE}"
|
|
mkdir -p "${DIR}"
|
|
|
|
# Rebuild the docker image to make sure it's up to date.
|
|
(
|
|
cd "${IMAGE}"
|
|
./build.sh
|
|
)
|
|
|
|
# Save the docker image, transfer it and the per-image run script to remote.
|
|
docker save -o "${DIR}/image.tar" "${IMAGE}"
|
|
cp "${IMAGE}/run.sh" "${DIR}"
|
|
ssh "${REMOTE}" mkdir -p "docker-devtools/infrastructure/${IMAGE}"
|
|
rsync -av --progress "${DIR}/" "${REMOTE}:docker-devtools/infrastructure/${IMAGE}"
|
|
|
|
# Load docker image on remote.
|
|
ssh "${REMOTE}" docker load -i "docker-devtools/infrastructure/${IMAGE}/image.tar"
|
|
|
|
# Create data dir on remote and run image on remote.
|
|
ssh -t "${REMOTE}" " \
|
|
mkdir -p docker-devtools/data/${IMAGE}; \
|
|
cd docker-devtools/data/${IMAGE}; \
|
|
\$HOME/docker-devtools/infrastructure/${IMAGE}/run.sh \
|
|
" $@
|