Skip to content

Instantly share code, notes, and snippets.

@nobonobo
Created January 20, 2014 00:21
Show Gist options
  • Select an option

  • Save nobonobo/8512885 to your computer and use it in GitHub Desktop.

Select an option

Save nobonobo/8512885 to your computer and use it in GitHub Desktop.
dockerで開発環境メンテ用Makefile
# depends: docker, fabric
.PHONY: help build run start commit stop stop-all ssh shell clean
TAG=nobonobo/ubuntu
help:
@echo "USAGE:"
@echo " make build ... image build"
@echo " make run ... container run"
@echo " make start ... container start"
@echo " make commit ... container commit"
@echo " make stop ... container stop"
@echo " make ssh ... container ssh login"
@echo " make clean ... container clean"
build:
cat $$HOME/.gitconfig > gitconfig
cat $$HOME/.ssh/config > config
ssh-add -L > ./authorized_keys
docker build -t $(TAG) .
make run
@while [ "`docker ps -l -q`" = "s" ]; do sleep 1; done
fab -A -H `docker port \`docker ps -l -q\` 22` setup
make commit
make clean
remove:
@if [ "`docker images -q $(TAG)`" != "" ];\
then docker rmi `docker images -q $(TAG)`;\
fi
run:
@mkdir -p $$PWD/humming-top
docker run -d -v /vargrant:/root/home:rw -p 22 $(TAG):latest
start:
docker start `docker ps -l -q`
commit:
docker commit `docker ps -l -q` $(TAG)
stop:
docker stop `docker ps -l -q`
stop-all:
docker stop `docker ps -q`
ssh:
ssh -p $(shell docker port $(shell docker ps -l -q) 22 | sed "s/.*://") root@localhost || true
make commit
clean:
@if [ "`docker ps -a -q`" != "" ];\
then bash -c 'docker rm `docker ps -a -q` >& /dev/null';\
fi || true
@if [ "`docker images | grep '^<none>' | awk '{print $$3}'`" != "" ];\
then bash -c 'docker rmi `docker images | grep "^<none>" | awk "{print $$3}"` >& /dev/null';\
fi || true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment