-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathmakefile
More file actions
50 lines (44 loc) · 2.35 KB
/
makefile
File metadata and controls
50 lines (44 loc) · 2.35 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
REPO:=jorge07/alpine-php
DOCKER_RUN:=docker run --rm -v $(PWD):/app ${REPO}:${VERSION}
DOCKER_RUN_DEV:=$(DOCKER_RUN)-dev
ARCHS?=linux/amd64
BUILD_DATE?=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
VCS_REF?=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
OCI_LABELS=--build-arg BUILD_DATE=$(BUILD_DATE) --build-arg VCS_REF=$(VCS_REF)
build:
docker buildx build --load --platform linux/amd64 $(OCI_LABELS) -t $(REPO):${VERSION} --target main -f ${VERSION}/Dockerfile ${VERSION}/
docker buildx build --load --platform linux/amd64 $(OCI_LABELS) -t $(REPO):${VERSION}-dev --target dev -f ${VERSION}/Dockerfile ${VERSION}/
run-detached:
docker run --name php${VERSION} -d -v $(PWD):/app $(REPO):${VERSION}
docker run --name php${VERSION}-dev -d -v $(PWD):/app $(REPO):${VERSION}-dev
test-main:
$(DOCKER_RUN) php -v
$(DOCKER_RUN) sh -c "php -v | grep ${VERSION}"
$(DOCKER_RUN) sh -c "php -v | grep OPcache"
$(DOCKER_RUN) sh -c "php test/test.php | grep Iyo"
$(DOCKER_RUN) sh -c "echo \"<?php echo ini_get('memory_limit');\" | php | grep 256M"
test-dev:
$(DOCKER_RUN_DEV) sh -c "php -v | grep Xdebug"
$(DOCKER_RUN_DEV) composer --version
$(DOCKER_RUN_DEV) sh -c "php test/test.php | grep Iyo"
$(DOCKER_RUN_DEV) sh -c "echo \"<?php echo ini_get('memory_limit');\" | php | grep 1G"
release: build
echo "Releasing: ${REPO}:${SEMVER}"
echo "Releasing: ${REPO}:${SEMVER}-dev"
echo "Releasing: ${REPO}:${VERSION}"
echo "Releasing: ${REPO}:${VERSION}-dev"
$(eval export SEMVER=$(shell docker run --rm -v $(PWD):/app ${REPO}:${VERSION} php -r "echo phpversion();"))
docker buildx build --platform $(ARCHS) --push $(OCI_LABELS) -t $(REPO):${VERSION} --target main -f ${VERSION}/Dockerfile ${VERSION}/
docker buildx build --platform $(ARCHS) --push $(OCI_LABELS) -t $(REPO):${VERSION}-dev --target dev -f ${VERSION}/Dockerfile ${VERSION}/
docker buildx build --platform $(ARCHS) --push $(OCI_LABELS) -t $(REPO):${SEMVER} --target main -f ${VERSION}/Dockerfile ${VERSION}/
docker buildx build --platform $(ARCHS) --push $(OCI_LABELS) -t $(REPO):${SEMVER}-dev --target dev -f ${VERSION}/Dockerfile ${VERSION}/
test-all:
VERSION=8.3 $(MAKE) build
VERSION=8.2 $(MAKE) build
VERSION=8.1 $(MAKE) build
VERSION=8.3 $(MAKE) test-main
VERSION=8.2 $(MAKE) test-main
VERSION=8.1 $(MAKE) test-main
VERSION=8.3 $(MAKE) test-dev
VERSION=8.2 $(MAKE) test-dev
VERSION=8.1 $(MAKE) test-dev