-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.txt
More file actions
90 lines (72 loc) · 2.11 KB
/
Makefile.txt
File metadata and controls
90 lines (72 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
VERBOSE := false
ifeq (${VERBOSE},false)
.SILENT:
endif
.ONESHELL:
SHELL := /bin/bash
MAKEFLAGS += --always-make
unexport AWS_DEFAULT_REGION AWS_SECRET_ACCESS_KEY AWS_ACCESS_KEY_ID
ifneq ($(wildcard .env),)
include .env
export $(shell sed 's/=.*//' .env)
endif
ENV ?= dev
IMAGE := slope
TAG := latest
REPO := $(shell echo ${ENV}-${IMAGE} | tr [:upper:] [:lower:])
define aws
export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}
aws
endef
AWS_ACCOUNT = $(shell $(aws) sts get-caller-identity --query Account --output text)
ECR_SERVER = ${AWS_ACCOUNT}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com
ECR_REGISTRY = ${ECS_SERVER}
BAMBOO := false
ARTIFACT_DIR := $(realpath ..)
PORT := 2800
export DOCKER_BUILDKIT := 1
export BUILDKIT_PROGRESS := plain
ifeq (${INTERACTIVE},true)
DOCKER_FLAGS += -it --entrypoint bash
endif
run:
docker run --rm \
-p ${PORT}:${PORT} \
${DOCKER_FLAGS} \
${IMAGE}:${TAG}
deploy:
if ${BAMBOO}; then
docker load < ${ARTIFACT_DIR}/${IMAGE}.tar.gz
fi
$(MAKE) push-image
build:
docker build -f Dockerfile-base -t ${IMAGE}-base:${TAG} .
docker build \
-t ${IMAGE}:${TAG} \
--build-arg BASE_IMAGE=${IMAGE}-base \
--build-arg BASE_TAG=${TAG} \
--build-arg PORT=${PORT} \
.
if ${BAMBOO}; then
docker save ${IMAGE}:${TAG} | gzip > ${ARTIFACT_DIR}/${IMAGE}.tar.gz
fi
create-ecr-repo:
if ! aws ecr describe-repositories --repository-names=${REPO}; then \
echo "Creating repository ${REPO}"; \
aws ecr create-repository --repository-name=${REPO}
fi
push-image: create-ecr-repo
aws ecr get-login-password --region ${AWS_DEFAULT_REGION} \
| docker login --username AWS --password-stdin ${ECR_SERVER}
docker tag ${IMAGE}:${TAG} ${ECR_SERVER}/${REPO}:${TAG}
docker push ${ECR_SERVER}/${REPO}:${TAG}
docker rmi ${ECR_SERVER}/${REPO}:${TAG}
pull-image:
aws ecr get-login-password --region ${AWS_DEFAULT_REGION} \
| docker login --username AWS --password-stdin ${ECR_SERVER}
docker pull ${ECR_SERVER}/${REPO}:${TAG}
test:
echo "This is a test!!!"
print-%: ; @echo $* = '$($*)' from $(origin $*)