34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 
								 | 
							
								SHELL := bash
							 | 
						||
| 
								 | 
							
								.ONESHELL:
							 | 
						||
| 
								 | 
							
								.SHELLFLAGS := -eu -o pipefail -c
							 | 
						||
| 
								 | 
							
								.DELETE_ON_ERROR:
							 | 
						||
| 
								 | 
							
								MAKEFLAGS += --warn-undefined-variables
							 | 
						||
| 
								 | 
							
								MAKEFLAGS += --no-builtin-rules
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifeq ($(origin .RECIPEPREFIX), undefined)
							 | 
						||
| 
								 | 
							
								  $(error This Make does not support .RECIPEPREFIX. Please use GNU Make 4.0 or later)
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								.RECIPEPREFIX = >
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								IMAGE_NAME:=organic-development
							 | 
						||
| 
								 | 
							
								TARGET :=
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: help
							 | 
						||
| 
								 | 
							
								help:
							 | 
						||
| 
								 | 
							
								> @grep -h "##" $(MAKEFILE_LIST) | grep -v grep | sed -E 's/^([^:]*): *## */\1:  /'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: build
							 | 
						||
| 
								 | 
							
								build: ## Build the docker image.
							 | 
						||
| 
								 | 
							
								> docker build --tag $(IMAGE_NAME) --target=$(TARGET) --file Dockerfile .
							 | 
						||
| 
								 | 
							
								> docker volume create organic-cargo-registry
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: shell
							 | 
						||
| 
								 | 
							
								shell: ## Launch an interactive shell inside the docker image with the source repository mounted at /source.
							 | 
						||
| 
								 | 
							
								shell: build
							 | 
						||
| 
								 | 
							
								> docker run --rm -i -t --entrypoint /bin/sh --mount type=tmpfs,destination=/tmp -v "$$(readlink -f ../../):/source" --workdir=/source --env CARGO_TARGET_DIR=/target -v "organic-cargo-registry:/usr/local/cargo/registry" $(IMAGE_NAME)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: clean
							 | 
						||
| 
								 | 
							
								clean: ## Remove the docker image and volume.
							 | 
						||
| 
								 | 
							
								> docker rmi $(IMAGE_NAME)
							 | 
						||
| 
								 | 
							
								> docker volume rm organic-cargo-registry
							 |