mirror of
https://github.com/VinylDNS/vinyldns
synced 2025-08-22 02:02:14 +00:00
- Simplify build config - Add TTY check to Makefiles for running Docker containers - Update `fs2` to latest patch - Update `sbt-assembly` plugin - Update portal to remove chatty console - Update portal scripts to add license header - Update prepare-portal/Gruntfile to combine js and css where applicable - Remove unused gentelella files from final portal artifact - Add support for shared zones to quickstart/docker images - Consolidate built artifacts in `artifacts/` to make eventual release easier
51 lines
1.6 KiB
Makefile
51 lines
1.6 KiB
Makefile
SHELL=bash
|
|
IMAGE_TAG=$(shell awk -F'"' '{print $$2}' ../../../version.sbt)
|
|
IMAGE_NAME=vinyldns/api
|
|
ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
|
|
# Check that the required version of make is being used
|
|
REQ_MAKE_VER:=3.82
|
|
ifneq ($(REQ_MAKE_VER),$(firstword $(sort $(MAKE_VERSION) $(REQ_MAKE_VER))))
|
|
$(error The version of MAKE $(REQ_MAKE_VER) or higher is required; you are running $(MAKE_VERSION))
|
|
endif
|
|
|
|
# Extract arguments for `make run`
|
|
EXTRACT_ARGS=false
|
|
ifeq (run,$(firstword $(MAKECMDGOALS)))
|
|
EXTRACT_ARGS=true
|
|
endif
|
|
ifeq ($(EXTRACT_ARGS),true)
|
|
# use the rest as arguments for "run"
|
|
WITH_ARGS ?= $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
|
endif
|
|
ifneq ($(WITH_ARGS),)
|
|
ARG_SEPARATOR=--
|
|
endif
|
|
|
|
%:
|
|
@:
|
|
|
|
.ONESHELL:
|
|
|
|
.PHONY: all build run publish
|
|
|
|
all: build run
|
|
|
|
build:
|
|
@set -euo pipefail
|
|
cd ../../..
|
|
docker build $(BUILD_ARGS) --build-arg DOCKER_FILE_PATH="$$(realpath --relative-to="." "$(ROOT_DIR)")" --build-arg VINYLDNS_VERSION="$(IMAGE_TAG)" -t $(IMAGE_NAME):$(IMAGE_TAG) -f "$(ROOT_DIR)/Dockerfile" .
|
|
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_NAME):latest
|
|
|
|
run:
|
|
@set -euo pipefail
|
|
docker network create --driver bridge vinyldns_net &> /dev/null || true
|
|
USE_TTY="" && test -t 1 && USE_TTY="-t"
|
|
docker run -i $${USE_TTY} --rm --env-file "$(ROOT_DIR)/../.env" --network vinyldns_net $(DOCKER_PARAMS) -v "$$(pwd)/:/opt/vinyldns/conf/" -p 9000:9000 $(IMAGE_NAME):$(IMAGE_TAG) $(ARG_SEPARATOR) $(WITH_ARGS)
|
|
|
|
publish: build
|
|
@set -euo pipefail
|
|
DOCKER_CONTENT_TRUST=1 docker push $(IMAGE_NAME):$(IMAGE_TAG)
|
|
DOCKER_CONTENT_TRUST=1 docker push $(IMAGE_NAME):latest
|
|
|