Files
docker-deployment/build/Makefile

49 lines
1.5 KiB
Makefile

include $(wildcard /opt/docker/build/make/*.mk)
BASE = /opt/docker/build
all: build bin service clean
build:
cp $(BASE)/Dockerfile .
docker build -t $(NAME):$(VERSION) --rm .
directory:
@mkdir -p build/boot build/runit build/scripts
service:
@if test "${DEPENDS}" != ""; then \
echo start on started docker-$(subst $(eval) $(eval), and started docker-,$(DEPENDS)) >> init.conf ;\
echo stop on stopped docker-$(subst $(eval) $(eval), or stopped docker-,$(DEPENDS)) >> init.conf ;\
else \
echo start on started docker >> init.conf ;\
echo stop on stopped docker >> init.conf ;\
fi
@echo exec /opt/docker/bin/run $(NAME) >> init.conf
@echo respawn >> init.conf
@mv init.conf /etc/init/docker-$(NAME).conf
bin:
@mkdir -p bin
@ln -sf $(BASE)/bin/run bin
@ln -sf $(BASE)/bin/ssh bin
@ln -sf $(BASE)/bin/app bin
@sed -i "1iARGS=\"$(RUN)\"" bin/run
@sed -i "1iARGS=\"$(SSH)\"" bin/ssh
clean:
@rm -f Dockerfile
@rm -rf build
@rm -rf id_rsa
tag_latest:
@docker tag $(NAME):$(VERSION) $(NAME):latest
ssh:
@ID=$$(docker ps | grep "$(NAME):$(VERSION)" | awk '{ print $$1 }') && \
if test "$$ID" = ""; then echo "Container is not running."; exit 1; fi && \
if ! test -s id_rsa; then \
docker cp $$ID:/opt/id_rsa . ;\
fi && \
IP=$$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' $$ID) && \
echo "SSHing into $$IP" && \
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i id_rsa root@$$IP ${CMD}