docker-rpi-homebridge/Makefile

48 lines
1.4 KiB
Makefile
Raw Normal View History

2017-11-20 18:44:08 +00:00
DOCKER_REPO ?= vividboarder
DOCKER_TAG ?= rpi-homebridge
DOCKER_TAG_DEV ?= $(DOCKER_TAG)-dev
HOMEBRIDGE_USER ?= root
2016-11-15 01:01:34 +00:00
default: build
# Default target to build the image
build:
2017-11-20 18:44:08 +00:00
docker build -t $(DOCKER_TAG_DEV) .
2016-11-15 01:01:34 +00:00
# Target to build and run and subsequently remove image
run: build
docker run --net=host --rm \
-p "51826:51826" \
2017-11-20 18:44:08 +00:00
-v "$(shell pwd)/config.json:/$(HOMEBRIDGE_USER)/.homebridge/config.json" \
-v "$(shell pwd)/plugins.txt:/$(HOMEBRIDGE_USER)/.homebridge/plugins.txt" \
$(DOCKER_TAG_DEV)
2016-11-15 01:01:34 +00:00
# Target to drop into an interractive shell
shell: build
docker run --net=host --rm \
-p "51826:51826" \
2017-11-20 18:44:08 +00:00
-v "$(shell pwd)/config.json:/$(HOMEBRIDGE_USER)/.homebridge/config.json" \
-v "$(shell pwd)/plugins.txt:/$(HOMEBRIDGE_USER)/.homebridge/plugins.txt" \
-it $(DOCKER_TAG_DEV) \
bash
2016-11-15 01:01:34 +00:00
# Tags dev image so it can be pushed
tag: build
2017-11-20 18:44:08 +00:00
docker tag $(DOCKER_TAG_DEV) $(DOCKER_REPO)/$(DOCKER_TAG)
2016-11-15 01:01:34 +00:00
# Pushes tagged image to docker hub
push: tag
2017-11-20 18:44:08 +00:00
docker push $(DOCKER_REPO)/$(DOCKER_TAG)
2017-11-20 18:44:08 +00:00
# Clears shrinkwrap so next build will install latest version of everything
unshrinkwrap:
echo "{}" > ./npm-shrinkwrap.json
2017-11-20 18:44:08 +00:00
# Generates a new shrinkwrap from installed node modules
shrinkwrap: build
docker run --rm \
2017-11-20 18:44:08 +00:00
-v "$(shell pwd)/npm-shrinkwrap.json:/homebridge/npm-shrinkwrap-volume.json" \
$(DOCKER_TAG_DEV) \
bash -c "npm shrinkwrap && cat npm-shrinkwrap.json > npm-shrinkwrap-volume.json"