# Incluir las variables de entorno mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) root_dir := $(patsubst %/,%,$(dir $(mkfile_path))) include $(root_dir)/.env serve: bundle exec rails s -b "ssl://0.0.0.0:3000?key=config/sutty.local.key&cert=config/sutty.local.crt" # Limpiar los archivos de testeo clean: rm -rf _sites/test-* _deploy/test-* # Generar la imagen Docker build: docker build --build-arg="RAILS_MASTER_KEY=`cat config/master.key`" -t sutty/sutty . save: docker save sutty/sutty:latest | gzip | ssh root@sutty.nl docker load load: ssh root@sutty.nl sh -c "gunzip -c sutty.latest.gz | docker load" # Crear el directorio donde se almacenan las gemas binarias ../gems/: mkdir -p $@ ifeq ($(MAKECMDGOALS),convert-gems) gem_dir := $(shell readlink -f ../gems) gems := $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/*/extconf.rb && basename {}') gems += $(shell bundle show --paths | xargs -I {} sh -c 'test -f {}/ext/extconf.rb && basename {}') gems_musl := $(patsubst %,$(gem_dir)/%-x86_64-linux-musl.gem,$(gems)) endif $(gem_dir)/%-x86_64-linux-musl.gem: docker run \ -v $(gem_dir):/srv/gems \ -v `readlink -f ~/.ccache`:/home/builder/.ccache \ -e HTTP_BASIC_USER=$(HTTP_BASIC_USER) \ -e HTTP_BASIC_PASSWORD=$(HTTP_BASIC_PASSWORD) \ -e GEM=`echo $* | sed -re "s/-[^-]+$$//"` \ -e VERSION=`echo $* | sed -re "s/.*-([^-]+)$$/\1/"` \ sutty/gem-compiler:latest # Compilar todas las gemas binarias y subirlas a gems.sutty.nl para que # al crear el contenedor no tengamos que compilarlas cada vez convert-gems: $(gems_musl) dirs := $(patsubst %,root/%,data sites deploy public) $(dirs): mkdir -p $@ test-container: $(dirs) docker run -v $(PWD)/root/data:/srv/http/data \ -v $(PWD)/root/sites:/srv/http/_sites \ -v $(PWD)/root/deploy:/srv/http/_deploy \ -v $(PWD)/root/public:/srv/http/_public \ -v $(PWD)/config/credentials.yml.enc:/srv/http/config/credentials.yml.enc \ -e RAILS_MASTER_KEY=`cat config/master.key` \ -e RAILS_ENV=production \ -it \ --rm \ --name=sutty \ sutty/sutty /bin/sh