From c2b21bb31dbd8d78a6a2e779a4507d0ddedb8fda Mon Sep 17 00:00:00 2001 From: Rodolfo Berrios <20590102+rodber@users.noreply.github.com> Date: Thu, 6 Oct 2022 15:31:11 -0300 Subject: [PATCH] supports hostname vars --- Makefile | 64 +++++++++++++++++++++++++++--------------- docs/BUILDING.md | 1 - docs/DOCKER-COMPOSE.md | 2 +- php.Dockerfile | 2 +- projects/prod.yml | 6 ++-- scripts/logo.sh | 9 ++++++ 6 files changed, 57 insertions(+), 27 deletions(-) create mode 100755 scripts/logo.sh diff --git a/Makefile b/Makefile index 4fb7ca6..216bdba 100644 --- a/Makefile +++ b/Makefile @@ -1,30 +1,45 @@ -# Default arguments VERSION ?= 4.0 PHP ?= 8.1 DOCKER_USER ?= www-data +HOSTNAME ?= localhost +HOSTNAME_PATH ?= / PROTOCOL ?= http -# NAMESPACE prefix in project's name + NAMESPACE ?= local -# Project's name PROJECT = ${NAMESPACE}_chevereto-build CONTAINER_BASENAME ?= ${NAMESPACE}_chevereto-build-${VERSION} TAG_BASENAME ?= ${NAMESPACE}_chevereto-build:${VERSION} -# SERVICE php|database|http + SERVICE ?= php -LICENSE ?= $(shell stty -echo; read -p "Chevereto V4 License key: " license; stty echo; echo $$license) -PORT ?= 8040 +LICENSE ?= $(shell stty -echo; read -p "Chevereto V4 License key: 🔑" license; stty echo; echo $$license) + VERSION_DOTLESS = $(shell echo \${VERSION} | tr -d '.') -# Echo doing +PHP_DOTLESS = $(shell echo \${PHP} | tr -d '.') + +PORT ?= 8420 +VERSION_DOTLESS = $(shell echo \${VERSION} | tr -d '.') + FEEDBACK = $(shell echo 👉 V\${VERSION} \${NAMESPACE} [PHP \${PHP}] \(\${DOCKER_USER}\)) FEEDBACK_SHORT = $(shell echo 👉 V\${VERSION} [PHP \${PHP}] \(\${DOCKER_USER}\)) -arguments: +ENDPOINT = ${PROTOCOL}://${HOSTNAME} +ENDPOINT_CONTEXT = ${PORT}${HOSTNAME_PATH} + +URL_PROD = ${ENDPOINT}:${ENDPOINT_CONTEXT} + +feedback: + @./scripts/logo.sh @echo "${FEEDBACK}" +feedback--short: + @echo "${FEEDBACK_SHORT}" + +feedback--prod: + @echo "${URL_PROD}" + # Docker -image: - @echo "${FEEDBACK_SHORT}" +image: feedback--short @chmod +x ./scripts/chevereto.sh @LICENSE=${LICENSE} \ VERSION=${VERSION} \ @@ -39,8 +54,7 @@ image: -f php.Dockerfile \ -t ${TAG_BASENAME}_php -image-custom: - @echo "${FEEDBACK_SHORT}" +image-custom: feedback--short @echo "* Building PHP image" @docker build . \ -f php.Dockerfile \ @@ -50,48 +64,54 @@ image-custom: -f http.Dockerfile \ -t ${TAG_BASENAME}_http -image-httpd: +image-httpd: feedback--short @echo "👉 Downloading source httpd.conf" @docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > httpd/httpd.conf @echo "👉 Adding chevereto.conf to httpd.conf" @cat httpd/chevereto.conf >> httpd/httpd.conf @echo "✅ httpd/httpd.conf updated" -bash: arguments +bash: feedback @docker exec -it --user ${DOCKER_USER} \ ${CONTAINER_BASENAME}_${SERVICE} \ bash -log-access: arguments +log-access: feedback @docker logs ${CONTAINER_BASENAME}_${SERVICE} -f 2>/dev/null -log-error: arguments +log-error: feedback @docker logs ${CONTAINER_BASENAME}_${SERVICE} -f 1>/dev/null # docker compose -up: arguments +up: feedback feedback--prod @CONTAINER_BASENAME=${CONTAINER_BASENAME} \ PORT=${PORT} \ TAG_BASENAME=${TAG_BASENAME} \ VERSION=${VERSION} \ + HOSTNAME=${HOSTNAME} \ + HOSTNAME_PATH=${HOSTNAME_PATH} \ + URL_PROD=${URL_PROD} \ docker compose \ -p ${PROJECT} \ -f projects/prod.yml \ up -up-d: arguments +up-d: feedback feedback--prod @CONTAINER_BASENAME=${CONTAINER_BASENAME} \ PORT=${PORT} \ TAG_BASENAME=${TAG_BASENAME} \ VERSION=${VERSION} \ + HOSTNAME=${HOSTNAME} \ + HOSTNAME_PATH=${HOSTNAME_PATH} \ + URL_PROD=${URL_PROD} \ docker compose \ -p ${PROJECT} \ -f projects/prod.yml \ up -d - @echo "👉 http://localhost:${PORT}" + @echo "👉 ${URL_PROD}" -stop: arguments +stop: feedback @CONTAINER_BASENAME=${CONTAINER_BASENAME} \ PORT=${PORT} \ VERSION=${VERSION} \ @@ -100,7 +120,7 @@ stop: arguments -f projects/prod.yml \ stop -down: arguments +down: feedback @CONTAINER_BASENAME=${CONTAINER_BASENAME} \ PORT=${PORT} \ VERSION=${VERSION} \ @@ -109,7 +129,7 @@ down: arguments -f projects/prod.yml \ down -down--volumes: arguments +down--volumes: feedback @CONTAINER_BASENAME=${CONTAINER_BASENAME} \ PORT=${PORT} \ VERSION=${VERSION} \ diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 4e19c26..ff7e91a 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -12,7 +12,6 @@ Available options: * NAMESPACE=local * VERSION=4.0 -* TAG_BASENAME=${NAMESPACE}_chevereto-build:${VERSION} ## Make custom images diff --git a/docs/DOCKER-COMPOSE.md b/docs/DOCKER-COMPOSE.md index a51adc2..6dd6760 100644 --- a/docs/DOCKER-COMPOSE.md +++ b/docs/DOCKER-COMPOSE.md @@ -9,8 +9,8 @@ make Available options: * NAMESPACE=local -* PORT=8040 * VERSION=4.0 +* PORT=8420 ## Up diff --git a/php.Dockerfile b/php.Dockerfile index c312018..71bd2b9 100644 --- a/php.Dockerfile +++ b/php.Dockerfile @@ -70,11 +70,11 @@ ENV CHEVERETO_ASSET_STORAGE_ACCOUNT_ID= \ CHEVERETO_MAX_ALBUMS=0 \ CHEVERETO_MAX_EXECUTION_TIME_SECONDS=30 \ CHEVERETO_MAX_IMAGES=0 \ + CHEVERETO_MAX_MEMORY_SIZE=512M \ CHEVERETO_MAX_POST_SIZE=64M \ CHEVERETO_MAX_UPLOAD_SIZE=64M \ CHEVERETO_MAX_USER_ALBUMS_LIST=300 \ CHEVERETO_MAX_USERS=0 \ - CHEVERETO_MAX_MEMORY_SIZE=512M \ CHEVERETO_SERVICING=docker \ CHEVERETO_SESSION_SAVE_HANDLER=files \ CHEVERETO_SESSION_SAVE_PATH=/tmp diff --git a/projects/prod.yml b/projects/prod.yml index c3c97ba..7477714 100644 --- a/projects/prod.yml +++ b/projects/prod.yml @@ -49,11 +49,13 @@ services: CHEVERETO_DB_PASS: user_database_password CHEVERETO_DB_PORT: 3306 CHEVERETO_DB_NAME: chevereto + CHEVERETO_HOSTNAME: ${HOSTNAME} + CHEVERETO_HOSTNAME_PATH: ${HOSTNAME_PATH} CHEVERETO_HTTPS: 0 CHEVERETO_ASSET_STORAGE_TYPE: local - CHEVERETO_ASSET_STORAGE_URL: http://localhost:${PORT}/_assets/ + CHEVERETO_ASSET_STORAGE_URL: ${URL_PROD}_assets/ CHEVERETO_ASSET_STORAGE_BUCKET: /var/www/html/_assets/ - CHEVERETO_ENCRYPTION_KEY: + CHEVERETO_ENCRYPTION_KEY: yUwfiRh6anwqC/sIx3COCIZeMT9rxdbXkMDdfgyrM2M= http: container_name: ${CONTAINER_BASENAME}_http diff --git a/scripts/logo.sh b/scripts/logo.sh new file mode 100755 index 0000000..d2211f8 --- /dev/null +++ b/scripts/logo.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -e +cat <