Last active
March 5, 2019 15:14
-
-
Save mikeslattery/0a3e2ca45ea1bd424dbb6cf96f65782e to your computer and use it in GitHub Desktop.
This file contains 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
#!/bin/bash | |
# Wrapper over docker-compose to run on remote server. | |
# Usage: | |
# Takes same arguments as docker-compose. | |
# Typical usage: | |
# remote-compose server down | |
# remote-compose server up --no-build -d | |
# (In a 2nd terminal:) | |
# remote-compsoe server logs -f --tail=0 | |
# Requirements/Restrictions: | |
# * ssh key-based login only. (no password) | |
# * User must be in 'docker' group on server | |
# * Required apps: bash, ssh, nc, docker-compose | |
set -euo pipefail | |
server="${1}"; shift | |
endpoint="${endpoint:-localhost}" | |
port="${port:-2377}" | |
export COMPOSE_HTTP_TIMEOUT=180 | |
# Start proxy | |
while nc -z "$endpoint" "$port"; do port="$(( $RANDOM + 1024 ))"; done | |
ssh -qnNT -L "${endpoint}:${port}:/var/run/docker.sock" "${server}" & | |
trap "kill $!" TERM INT EXIT | |
sleep 1 | |
while ! nc -z "$endpoint" "$port"; do sleep 1; done | |
export DOCKER_HOST="tcp://${endpoint}:${port}" | |
docker-compose "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment