mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-04 02:46:23 +00:00
builder looks like it's working
This commit is contained in:
+26
-6
@@ -11,13 +11,33 @@ process_env_vars() {
|
||||
var_name="${env_var%%=*}" # Variable name
|
||||
var_value="${env_var#*=}" # Variable value
|
||||
|
||||
# Handle variables with and without default values
|
||||
if [[ "$var_value" == *'${'*:*'}'* ]]; then
|
||||
# For variables with default values
|
||||
modified_var="${var_name}=\${${APP_NAME}_${var_value#\$\{}"
|
||||
# Check if the variable value contains a reference to another variable with the format ${VAR_NAME:-default}
|
||||
if [[ "$var_value" == *'${'*':'*'}'* ]]; then
|
||||
# Extract the variable inside the ${} braces
|
||||
ref_var="${var_value#\$\{}"
|
||||
ref_var="${ref_var%%[:-]*}"
|
||||
|
||||
# Extract the default value part
|
||||
default_value="${var_value##*:-}"
|
||||
default_value="${default_value%\}}"
|
||||
|
||||
# Check if the reference variable already contains APP_NAME_ prefix
|
||||
if [[ "$ref_var" == ${APP_NAME}_* ]]; then
|
||||
# If it already contains the prefix, use it as is
|
||||
modified_var="${var_name}=\${${ref_var}:-${default_value}}"
|
||||
else
|
||||
# If not, add the APP_NAME_ prefix
|
||||
modified_var="${var_name}=\${${APP_NAME}_${ref_var}:-${default_value}}"
|
||||
fi
|
||||
else
|
||||
# For variables without default values
|
||||
modified_var="${var_name}=\${${APP_NAME}_${var_name}:-${var_value}}"
|
||||
# For variables without ${VAR_NAME} references
|
||||
if [[ "$var_name" == ${APP_NAME}_* ]]; then
|
||||
# If the variable name already starts with APP_NAME_, do not prefix again
|
||||
modified_var="${var_name}=${var_value}"
|
||||
else
|
||||
# Add APP_NAME_ prefix for consistency
|
||||
modified_var="${var_name}=\${${APP_NAME}_${var_name}:-${var_value}}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Append the modified variable to results
|
||||
|
||||
+1
-2
@@ -18,5 +18,4 @@ EOF
|
||||
)
|
||||
|
||||
# Print the variable to verify the content
|
||||
echo "***** NEW docker-compose.yml *****"
|
||||
echo "$BLDR_NEW_DCF"
|
||||
echo "$BLDR_NEW_DCF" > ${BLDR_DIR}/docker-compose.yml
|
||||
|
||||
@@ -15,5 +15,4 @@ EOF
|
||||
# Output the content to a file
|
||||
BLDR_NEW_SE="$file_content"
|
||||
|
||||
echo "***** Sample Extends *****"
|
||||
echo "$BLDR_NEW_SE"
|
||||
echo "$BLDR_NEW_SE" > ${BLDR_DIR}/sample-extends.yml
|
||||
|
||||
+6
-6
@@ -1,23 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
BLDR_NEW_SE+="# $BLDR_APP\n"
|
||||
BLDR_ENV_FILE+="# $BLDR_APP\n"
|
||||
BLDR_ENV_FILE+="COOKBOOK=$BLDR_PARENT_PATH #HELP: cookbooks\n"
|
||||
|
||||
while IFS= read -r line; do
|
||||
# Use a regex to match and extract variable names and defaults
|
||||
if [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)\} ]]; then
|
||||
# Matched ${VAR_NAME} (without default)
|
||||
var_name="${BASH_REMATCH[1]}"
|
||||
BLDR_NEW_SE+="${var_name}=\n"
|
||||
BLDR_ENV_FILE+="${var_name}=\n"
|
||||
elif [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)[:-](.*)\} ]]; then
|
||||
# Matched ${VAR_DEF:-default} (with default)
|
||||
var_name="${BASH_REMATCH[1]}"
|
||||
default_value="${BASH_REMATCH[2]:1}"
|
||||
BLDR_NEW_SE+="${var_name}=${default_value}\n"
|
||||
BLDR_ENV_FILE+="${var_name}=${default_value}\n"
|
||||
fi
|
||||
done <<< "$BLDR_NEW_DCF"
|
||||
|
||||
# Remove duplicates from the output
|
||||
BLDR_NEW_SE=$(echo -e "$BLDR_NEW_SE" | sort -u)
|
||||
BLDR_ENV_FILE=$(echo -e "$BLDR_ENV_FILE" | sort -u)
|
||||
|
||||
echo "***** NEW sample.env *****"
|
||||
echo "$BLDR_NEW_SE"
|
||||
echo "$BLDR_ENV_FILE" > ${BLDR_DIR}/sample.env
|
||||
|
||||
+1
-2
@@ -80,8 +80,7 @@ source ./_builder/extends-new.sh
|
||||
################################################
|
||||
source ./_builder/readme-new.sh
|
||||
BLDR_NEW_README=$(generate_readme)
|
||||
echo "***** README *****"
|
||||
echo "$BLDR_NEW_README"
|
||||
echo "$BLDR_NEW_README" > ${BLDR_DIR}/README.md
|
||||
|
||||
# TODO: for readme file do mkdir -p data/vols for vols
|
||||
# Do a git diff on the directory
|
||||
|
||||
+12
-14
@@ -2,20 +2,18 @@ version: '3.4'
|
||||
|
||||
services:
|
||||
stash:
|
||||
image: ${STASH_IMAGE:-stashapp/stash:latest}
|
||||
image: ${STASHAPP_IMAGE:-stashapp/stash:latest}
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- STASH_STASH=${STASH_STASH:-/data/}
|
||||
- STASH_GENERATED=${STASH_GENERATED:-/generated/}
|
||||
- STASH_METADATA=${STASH_METADATA:-/metadata/}
|
||||
- STASH_CACHE=${STASH_CACHE:-/cache/}
|
||||
- STASH_CACHE=${STASHAPP_STASH_CACHE:-/cache/}
|
||||
- STASH_DOMAIN_NAME=${STASHAPP_STASH_DOMAIN_NAME:-stash.yourdomain.ca}
|
||||
- STASH_GENERATED=${STASHAPP_STASH_GENERATED:-/generated/}
|
||||
- STASH_METADATA=${STASHAPP_STASH_METADATA:-/metadata/}
|
||||
- STASH_STASH=${STASHAPP_STASH_STASH:-/data/}
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- "${VOL_PATH:-./data}/stash-video:/data"
|
||||
- "${VOL_PATH:-./data}/stash-metadata:/metadata"
|
||||
- "${VOL_PATH:-./data}/stash-cache:/cache"
|
||||
- "${VOL_PATH:-./data}/stash-generated:/generated"
|
||||
- "${VOL_PATH:-./data}/stash-root:/root"
|
||||
|
||||
# Uncomment and use if needed
|
||||
# network_mode: "host"
|
||||
- ${VOL_PATH:-./data}/stash-cache:/cache
|
||||
- ${VOL_PATH:-./data}/stash-generated:/generated
|
||||
- ${VOL_PATH:-./data}/stash-metadata:/metadata
|
||||
- ${VOL_PATH:-./data}/stash-root:/root
|
||||
- ${VOL_PATH:-./data}/stash-video:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
version: '3.4'
|
||||
|
||||
services:
|
||||
stash:
|
||||
extends:
|
||||
file: ${COOKBOOK}/stashapp/docker-compose.yml
|
||||
service: stash
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "9999:9999"
|
||||
stashapp:
|
||||
extends:
|
||||
file: ${COOKBOOK}/stashapp/docker-compose.yml
|
||||
service: stashapp
|
||||
|
||||
+10
-12
@@ -1,12 +1,10 @@
|
||||
# Stash App
|
||||
PROD=prod.domain.com
|
||||
PRODDIR=/var/www/stashdomain-com/ #HELP: project_path
|
||||
COOKBOOK=/home/user/git/docker-compose-cookbooks #HELP: cookbooks
|
||||
VOL_PATH=/project-dir/project-name/data #HELP: volpath
|
||||
STASH_IMAGE=stashapp/stash:v0.26.2
|
||||
# Stash Container
|
||||
STASH_DOMAIN_NAME=stash.4lt.ca
|
||||
STASH_STASH=/data/
|
||||
STASH_GENERATED=/generated/
|
||||
STASH_METADATA=/metadata/
|
||||
STASH_CACHE=/cache/
|
||||
|
||||
COOKBOOK=/home/nick/github/docker-compose-cookbooks #HELP: cookbooks
|
||||
# stashapp
|
||||
STASHAPP_IMAGE=stashapp/stash:latest
|
||||
STASHAPP_STASH_CACHE=/cache/
|
||||
STASHAPP_STASH_DOMAIN_NAME=stash.yourdomain.ca
|
||||
STASHAPP_STASH_GENERATED=/generated/
|
||||
STASHAPP_STASH_METADATA=/metadata/
|
||||
STASHAPP_STASH_STASH=/data/
|
||||
VOL_PATH=./data
|
||||
|
||||
Reference in New Issue
Block a user