Update composer, make build more robust
This commit is contained in:
parent
dd511a9ba9
commit
ea690707ca
2 changed files with 51 additions and 21 deletions
11
Dockerfile
11
Dockerfile
|
|
@ -1,7 +1,10 @@
|
|||
FROM composer:1.9 as composer
|
||||
ARG PHP_VERSION
|
||||
ARG PHP_INTERFACE
|
||||
ARG ARCHITECTURE_VERSION
|
||||
|
||||
FROM composer:1.10 as composer
|
||||
|
||||
FROM php:7.3-fpm-alpine3.10 as alpine
|
||||
FROM php:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION} as alpine
|
||||
ENV COMPOSER_ALLOW_SUPERUSER 1
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||
WORKDIR /app
|
||||
|
|
@ -17,7 +20,6 @@ RUN apk add --no-cache \
|
|||
RUN apk add --no-cache --virtual .node-build-deps \
|
||||
g++ \
|
||||
make \
|
||||
python \
|
||||
&& docker-php-ext-configure intl \
|
||||
&& docker-php-ext-install -j$(nproc) \
|
||||
intl \
|
||||
|
|
@ -36,7 +38,7 @@ EXPOSE 80
|
|||
EXPOSE 8000
|
||||
|
||||
|
||||
FROM php:7.3-fpm-stretch as stretch
|
||||
FROM php:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION} as debian
|
||||
ENV COMPOSER_ALLOW_SUPERUSER 1
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||
WORKDIR /app
|
||||
|
|
@ -54,7 +56,6 @@ RUN apt update \
|
|||
&& apt install --no-install-recommends -y \
|
||||
libicu-dev \
|
||||
nodejs \
|
||||
npm \
|
||||
&& ln -s $(which nodejs) /usr/local/bin/node \
|
||||
&& npm -g install yarn \
|
||||
&& docker-php-ext-configure intl \
|
||||
|
|
|
|||
61
Makefile
61
Makefile
|
|
@ -1,28 +1,57 @@
|
|||
VERSION ?= test
|
||||
|
||||
.DEFAULT:
|
||||
@echo 'Invalid target.'
|
||||
@echo
|
||||
@echo ' alpine build alpine image'
|
||||
@echo ' stretch build debian stretch image'
|
||||
@echo ' all build all image variants'
|
||||
@echo ' Required ENV variables:'
|
||||
@echo ' PHP_VERSION - the version of php to build, e.g., 7.4'
|
||||
@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 ' push build and push images to the registry'
|
||||
@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=7.3 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.3 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make push-debian
|
||||
PHP_VERSION=7.3 PHP_INTERFACE=apache ARCHITECTURE_VERSION=stretch make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.3 PHP_INTERFACE=apache ARCHITECTURE_VERSION=stretch make push-debian
|
||||
PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=buster make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=buster make push-debian
|
||||
PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=stretch make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=stretch make push-debian
|
||||
PHP_VERSION=7.4 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.4 PHP_INTERFACE=apache ARCHITECTURE_VERSION=buster make push-debian
|
||||
PHP_VERSION=7.4 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=buster make debian
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.4 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=buster make push-debian
|
||||
PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make alpine
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.3 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make push-alpine
|
||||
PHP_VERSION=7.4 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make alpine
|
||||
REGISTRY=registry.xengul.com/xen/laravel-base PHP_VERSION=7.4 PHP_INTERFACE=fpm ARCHITECTURE_VERSION=3.12 make push-alpine
|
||||
|
||||
alpine:
|
||||
BUILDKIT=1 docker build --pull --target=alpine -t laravel-base:${VERSION}-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} .
|
||||
|
||||
stretch:
|
||||
BUILDKIT=1 docker build --pull --target=stretch -t laravel-base:${VERSION}-stretch .
|
||||
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} .
|
||||
|
||||
all: alpine stretch
|
||||
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: all
|
||||
docker tag laravel-base:${VERSION}-alpine ${REGISTRY}:${VERSION}-alpine
|
||||
docker tag laravel-base:${VERSION}-stretch ${REGISTRY}:${VERSION}-stretch
|
||||
|
||||
docker push ${REGISTRY}:${VERSION}-alpine
|
||||
docker push ${REGISTRY}:${VERSION}-stretch
|
||||
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}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue