diff --git a/Makefile b/Makefile index 345a838..61dfe81 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ endif SOURCE ?= ~/git/chevereto/v4 TARGET ?= default# default|dev VERSION ?= 4.0 +EDITION ?= pro PHP ?= 8.1 DOCKER_USER ?= www-data HOSTNAME ?= localhost @@ -31,8 +32,9 @@ URL_PORT = ${PROTOCOL}://${HOSTNAME}:${PORT}${HOSTNAME_PATH} URL = $(shell [ "${PORT}" = 80 -o "${PORT}" = 443 ] && echo ${URL_BARE} || echo ${URL_PORT}) PROJECT = ${NAMESPACE}_chevereto$(shell [ ! "${TARGET}" = "default" ] && echo -\${TARGET}) CONTAINER_BASENAME = ${PROJECT}-${VERSION} +IMAGE_EDITION_FREE_BASE = ghcr.io/chevereto/chevereto IMAGE_BASE = chevereto$(shell [ ! "${TARGET}" = "default" ] && echo -\${TARGET}) -IMAGE_TAG = ${IMAGE_BASE}:${VERSION} +IMAGE ?= $(shell [ "${EDITION}" = "free" ] && echo \${IMAGE_EDITION_FREE_BASE} || echo \${IMAGE_BASE}):${VERSION} COMPOSE ?= docker-compose COMPOSE_TARGET = ${COMPOSE}.yml COMPOSE_SAMPLE = $(shell [ "${TARGET}" = "default" ] && echo default || echo dev).yml @@ -48,7 +50,7 @@ DOCKER_COMPOSE = $(shell echo @CONTAINER_BASENAME=\${CONTAINER_BASENAME} \ HTTPS_CERT=\${HTTPS_CERT} \ HTTPS_KEY=\${HTTPS_KEY} \ HTTPS=\${HTTPS} \ - IMAGE_TAG=\${IMAGE_TAG} \ + IMAGE=\${IMAGE} \ VERSION=\${VERSION} \ HOSTNAME=\${HOSTNAME} \ HOSTNAME_PATH=\${HOSTNAME_PATH} \ @@ -72,7 +74,7 @@ feedback--url: @echo "${URL} @URL" feedback--image: - @echo "📦 ${IMAGE_TAG}" + @echo "📦 ${IMAGE}" feedback--volumes: @echo "${PROJECT}_database" @@ -91,16 +93,18 @@ image: feedback--image feedback--short IMAGE_BASE=${IMAGE_BASE} \ ./scripts/system/chevereto.sh \ docker build . \ + --cache-from ${IMAGE_EDITION_FREE_BASE}:${VERSION} \ --network host \ -f Dockerfile image-custom: feedback--image feedback--short @mkdir -p chevereto - echo "* Building custom image ${IMAGE_TAG}" + echo "* Building custom image ${IMAGE}" @docker build . \ + --cache-from ${IMAGE_EDITION_FREE_BASE} :${VERSION}\ --network host \ -f Dockerfile \ - -t ${IMAGE_TAG} + -t ${IMAGE} volume-cp: @docker run --rm -it -v ${VOLUME_FROM}:/from -v ${VOLUME_TO}:/to alpine ash -c "cd /from ; cp -av . /to" diff --git a/default.yml b/default.yml index d26798f..f4adf40 100644 --- a/default.yml +++ b/default.yml @@ -17,7 +17,7 @@ services: php: container_name: ${CONTAINER_BASENAME}_php - image: ${IMAGE_TAG} + image: ${IMAGE} networks: - chevereto - nginx-proxy diff --git a/dev.yml b/dev.yml index 6cce1e4..8b6a003 100644 --- a/dev.yml +++ b/dev.yml @@ -19,7 +19,7 @@ services: php: container_name: ${CONTAINER_BASENAME}_php - image: ${IMAGE_TAG} + image: ${IMAGE} networks: - chevereto volumes: diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 9cce6c1..82caf5d 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -11,6 +11,7 @@ make image ### Options * VERSION=4.0 +* EDITION=pro * TARGET=default (controls image base name) Example: diff --git a/docs/DOCKER-COMPOSE.md b/docs/DOCKER-COMPOSE.md index 3b9ebf9..bc15299 100644 --- a/docs/DOCKER-COMPOSE.md +++ b/docs/DOCKER-COMPOSE.md @@ -12,6 +12,7 @@ make * NAMESPACE=chevereto * VERSION=4.0 +* EDITION=pro * HTTP_PORT=80 * HTTPS_PORT=443 * HOSTNAME=localhost diff --git a/scripts/system/chevereto.sh b/scripts/system/chevereto.sh index 9829550..8add9e3 100755 --- a/scripts/system/chevereto.sh +++ b/scripts/system/chevereto.sh @@ -4,6 +4,7 @@ DOWNLOAD_DIR=${PWD}"/.temp" WORKING_DIR=${PWD}"/chevereto" PACKAGE=${VERSION} API_DOWNLOAD="https://chevereto.com/api/download/" +echo " ..." echo "* Downloading Chevereto" rm -rf $DOWNLOAD_DIR $WORKING_DIR mkdir -p $DOWNLOAD_DIR $WORKING_DIR