Changeset View
Changeset View
Standalone View
Standalone View
Makefile
- This file was added.
BUILD_CONTEXT ?= ../ | |||||
ALL_DOCKERFILES := $(wildcard dockerfiles/Dockerfile-*) | |||||
ALL_BUILD_TARGETS := $(subst dockerfiles/Dockerfile-,build-,$(ALL_DOCKERFILES)) | |||||
TEMP_DIR := $(shell mktemp -d /tmp/swh_dockerfiles.tmp.XXXXXXXXXX) | |||||
DOCKERFILE_SWH_DEPS := $(TEMP_DIR)/Dockerfile-swh-deps | |||||
REQUIREMENT_FILES := $(wildcard ../*/requirements.txt) | |||||
all: $(ALL_BUILD_TARGETS) | |||||
.PHONY: build-swh-base | |||||
# Hack to build a base Docker image with SWH's dependencies (slow to build) | |||||
# installed *before* using COPY on SWH's source code, so it | |||||
# won't be rebuilt on every single change in SWH's source code. | |||||
build-swh-deps: $(REQUIREMENT_FILES) | |||||
@echo "FROM python:3" >> $(DOCKERFILE_SWH_DEPS) | |||||
@echo "RUN apt-get update" >> $(DOCKERFILE_SWH_DEPS) | |||||
@echo "RUN apt-get install -y myrepos libsystemd-dev libapr1-dev libaprutil1-dev libsvn-dev" >> $(DOCKERFILE_SWH_DEPS) | |||||
@echo -n "RUN pip install " >> $(DOCKERFILE_SWH_DEPS) | |||||
@cd ..; ./bin/pip-ls-deps 2> /dev/null | sed "s/\(.*\)/\\\'\1\\\'/" | xargs echo >> $(DOCKERFILE_SWH_DEPS) | |||||
@echo "" | |||||
@echo "+----------------------------------------------------------+" | |||||
@echo "| Building Docker image with SWH's dependencies installed. |" | |||||
@echo "+----------------------------------------------------------+" | |||||
@echo "" | |||||
docker build -f $(DOCKERFILE_SWH_DEPS) -t swh-deps $(BUILD_CONTEXT) | |||||
@# remove the current temporary dir, as well as older ones that | |||||
@# may remain after a crash | |||||
@rm -rf /tmp/swh_dockerfiles.tmp.* | |||||
build-swh-base: build-swh-deps | |||||
@echo "" | |||||
@echo "+----------------------------------------------+" | |||||
@echo "| Building Docker image with SWH's source code |" | |||||
@echo "+----------------------------------------------+" | |||||
@echo "" | |||||
docker build -f dockerfiles/Dockerfile-swh-base -t swh-base $(BUILD_CONTEXT) | |||||
build-%: dockerfiles/Dockerfile-% build-swh-base | |||||
@echo "" | |||||
@echo "+------------------------------------------+" | |||||
@echo "| Building component-specific Docker image |" | |||||
@echo "+------------------------------------------+" | |||||
@echo "" | |||||
docker build -f $< -t $(subst build-,,$@) $(BUILD_CONTEXT) | |||||
run-%: build-% | |||||
docker run $(subst run-,,$@) |