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