Use temporary file as Dockerfile
This commit is contained in:
20
bin/build
20
bin/build
@@ -1,19 +1 @@
|
|||||||
FILE=$DOCKER_HOME/images/$1.mk
|
$DOCKER_HOME/bin/make $1 build
|
||||||
echo $FILE
|
|
||||||
if [[ ! -e $FILE ]]; then
|
|
||||||
DELETE=true
|
|
||||||
FILE="$(mktemp)"
|
|
||||||
echo 123
|
|
||||||
cat <<- EOF > $FILE
|
|
||||||
include \$(DOCKER_HOME)/build/Makefile
|
|
||||||
|
|
||||||
NAME = $1
|
|
||||||
VERSION = latest
|
|
||||||
|
|
||||||
build: $1
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
make -f $FILE build
|
|
||||||
if [ ! -z ${DELETE+x} ]; then
|
|
||||||
rm $FILE
|
|
||||||
fi
|
|
||||||
16
bin/make
16
bin/make
@@ -1 +1,15 @@
|
|||||||
make -f $DOCKER_HOME/images/$1.mk $2
|
FILE=$DOCKER_HOME/images/$1.mk
|
||||||
|
if [[ ! -e $FILE ]]; then
|
||||||
|
DELETE=true
|
||||||
|
FILE="$(mktemp)"
|
||||||
|
cat <<- EOF > $FILE
|
||||||
|
include \$(DOCKER_HOME)/build/Makefile
|
||||||
|
NAME = $1
|
||||||
|
VERSION = latest
|
||||||
|
build: $1
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
make -f $FILE $2
|
||||||
|
if [ ! -z ${DELETE+x} ]; then
|
||||||
|
rm $FILE
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
RANDOM = $(shell bash -c 'echo $$RANDOM')
|
RANDOM = $(shell bash -c 'echo $$RANDOM')
|
||||||
HOME = $(DOCKER_HOME)
|
HOME = $(DOCKER_HOME)
|
||||||
BASE = $(HOME)/build
|
BASE = $(HOME)/build
|
||||||
FILE = $(BASE)/Dockerfile
|
|
||||||
TMP = /build/tmp
|
TMP = /build/tmp
|
||||||
FROM = ubuntu:trusty
|
FROM = ubuntu:trusty
|
||||||
INTERFACE = eth0
|
INTERFACE = eth0
|
||||||
@@ -19,13 +18,13 @@ define execute
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define boot
|
define boot
|
||||||
@$(eval TARGET := '/opt/init.d/$(1)_$(2)')
|
@$(eval TARGET = '/opt/init.d/$(1)_$(2)')
|
||||||
$(call add,boot/$(2).sh,$(TARGET))
|
$(call add,boot/$(2).sh,$(TARGET))
|
||||||
@echo 'RUN chmod +x $(TARGET)' >> ${FILE}
|
@echo 'RUN chmod +x $(TARGET)' >> ${FILE}
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define runit
|
define runit
|
||||||
@$(eval TARGET := '/etc/service/$(1)/run')
|
@$(eval TARGET = '/etc/service/$(1)/run')
|
||||||
$(call add,runit/$(1),$(TARGET))
|
$(call add,runit/$(1),$(TARGET))
|
||||||
@echo 'RUN mkdir -p /etc/service/$(1)' >> ${FILE}
|
@echo 'RUN mkdir -p /etc/service/$(1)' >> ${FILE}
|
||||||
@echo 'RUN chmod +x $(TARGET)' >> ${FILE}
|
@echo 'RUN chmod +x $(TARGET)' >> ${FILE}
|
||||||
@@ -41,9 +40,11 @@ build: prepare base
|
|||||||
$(call script,cleanup)
|
$(call script,cleanup)
|
||||||
@echo 'RUN chmod +x /opt/init.d/*' >> ${FILE}
|
@echo 'RUN chmod +x /opt/init.d/*' >> ${FILE}
|
||||||
@echo 'CMD ["/opt/init"]' >> ${FILE}
|
@echo 'CMD ["/opt/init"]' >> ${FILE}
|
||||||
@docker build -t $(NAME):$(VERSION) $(ARGS) ${BASE}
|
@docker build -t $(NAME):$(VERSION) $(ARGS) -f $(FILE) $(BASE)
|
||||||
|
@rm ${FILE}
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
|
@$(eval FILE = $(shell mktemp -p $(BASE)))
|
||||||
@echo FROM $(FROM) > ${FILE}
|
@echo FROM $(FROM) > ${FILE}
|
||||||
@echo ENV MODE $(MODE) >> ${FILE}
|
@echo ENV MODE $(MODE) >> ${FILE}
|
||||||
$(call add,config,/build/config)
|
$(call add,config,/build/config)
|
||||||
|
|||||||
Reference in New Issue
Block a user