45 lines
2.1 KiB
Makefile
45 lines
2.1 KiB
Makefile
.DEFAULT:
|
|
@echo 'Invalid target.'
|
|
@echo
|
|
@echo ' Required ENV variables:'
|
|
@echo ' PHP_VERSION - the version of php to build, e.g., 8.0'
|
|
@echo ' PHP_INTERFACE - the type of php interface, e.g., apache, fpm'
|
|
@echo ' ARCHITECTURE_VERSION - the version of architecture, e.g., buster (for debian) or 3.12 (for alpine)'
|
|
@echo ' (optional for alpine)'
|
|
@echo
|
|
@echo ' alpine build alpine image'
|
|
@echo ' debian build debian stretch image'
|
|
@echo
|
|
@echo ' push-alpine build and push alpine image to the registry'
|
|
@echo ' push-debian build and push debian image to the registry'
|
|
@echo
|
|
|
|
default: .DEFAULT
|
|
|
|
all:
|
|
PHP_VERSION=8.0 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make debian
|
|
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=8.0 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make push-debian
|
|
PHP_VERSION=8.0 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make alpine
|
|
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=8.0 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make push-alpine
|
|
|
|
alpine:
|
|
BUILDKIT=1 docker build \
|
|
--build-arg PHP_VERSION=${PHP_VERSION} \
|
|
--build-arg PHP_INTERFACE=${PHP_INTERFACE} \
|
|
--build-arg ARCHITECTURE_VERSION=${ARCHITECTURE_VERSION} \
|
|
--pull --target=alpine -t laravel-base:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION} .
|
|
|
|
debian:
|
|
BUILDKIT=1 docker build \
|
|
--build-arg PHP_VERSION=${PHP_VERSION} \
|
|
--build-arg PHP_INTERFACE=${PHP_INTERFACE} \
|
|
--build-arg ARCHITECTURE_VERSION=${ARCHITECTURE_VERSION} \
|
|
--pull --target=debian -t laravel-base:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION} .
|
|
|
|
push-alpine: alpine
|
|
docker tag laravel-base:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION} ${REGISTRY}:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION}
|
|
docker push ${REGISTRY}:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION}
|
|
|
|
push-debian: debian
|
|
docker tag laravel-base:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION} ${REGISTRY}:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION}
|
|
docker push ${REGISTRY}:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION}
|