Compare commits
17 Commits
docker_too
...
master
Author | SHA1 | Date | |
---|---|---|---|
925dda5d5b | |||
7b50783d3c | |||
eebfc99b24 | |||
4e2f7b927d | |||
bf1177c71a | |||
22d7d17cd0 | |||
b7170807d5 | |||
69b26b35bf | |||
7278a536fd | |||
ae36bab6ec | |||
7a4ee6f87f | |||
57fc0d82a5 | |||
1ffaa822e6 | |||
a1cdbcdac2 | |||
7bf4bc661a | |||
ce4241ff9e | |||
58f1259e90 |
11
ReadMe.txt
11
ReadMe.txt
@ -5,9 +5,18 @@ Welcome to Rx3-Docker/Docker Tools!
|
|||||||
This project aims to give some basic tools to be used by other Rx3 docker packaging projects.
|
This project aims to give some basic tools to be used by other Rx3 docker packaging projects.
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
- docker_tools_install & docker_mk_dir to setup a new application environment,
|
||||||
- docker_mk_env command to compile env file into .env file,
|
- docker_mk_env command to compile env file into .env file,
|
||||||
- docker_start, docker_stop & docker_logs command,
|
- docker_start, docker_stop & docker_logs command,
|
||||||
- docker_service_add env file function.
|
- docker_network_up & docker_network_down automatically called to setup external network rule & route,
|
||||||
|
- docker_service_add env file function,
|
||||||
|
- docker_build_push,
|
||||||
|
|
||||||
|
Support different mounted volume modes:
|
||||||
|
- Single,
|
||||||
|
- Mixed (Old mode),
|
||||||
|
- Merged,
|
||||||
|
- Splited (Default).
|
||||||
|
|
||||||
|
|
||||||
Enjoy it!
|
Enjoy it!
|
||||||
|
@ -1,3 +1,79 @@
|
|||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.4.0 - A. GIBERT - 2025/04/XX
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add docker_network_up & docker_network_down scripts called by docker_start & docker_stop.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.7 - A. GIBERT - 2025/03/31
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Remove ${service_name} == ${APPL_NAME} exception handling for *_IMG_URL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.6 - A. GIBERT - 2025/01/31
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add a new DOCKER_TOOLS_USER_GROUP_FORCE env variable support.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.5 - A. GIBERT - 2025/01/24
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add a new DOCKER_TOOLS_VOLUME mode: "MIXED".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.4 - A. GIBERT - 2025/01/13
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Replace ENV_SED by ENV_NET_SED environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.3 - A. GIBERT - 2025/01/05
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add DOCKER_TOOLS_EXEPTION_LOGS env variable support,
|
||||||
|
- Remove .env.sed file obsoleted by ENV_SED environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.2 - A. GIBERT - 2024/12/27
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add docker_config_add function for docker_mk_env to support config file generation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.1 - A. GIBERT - 2024/12/14
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Add docker_mk_dir & docker_tools_install commands.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Rx3-Docker/Docker Tools V 1.3.0 - A. GIBERT - 2024/11/26
|
||||||
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Improve docker_service_add function,
|
||||||
|
- Switch by default to splited volume mode,
|
||||||
|
- Add DOCKER_TOOLS_DEBUG, DOCKER_TOOLS_VOLUME & DOCKER_TOOLS_EXEPTION_LIBS env variable support.
|
||||||
|
- Warning: API break!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
Rx3-Docker/Docker Tools V 1.2.0 - A. GIBERT - 2024/11/15
|
Rx3-Docker/Docker Tools V 1.2.0 - A. GIBERT - 2024/11/15
|
||||||
------------------------------------------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
33
sbin/docker_mk_dir
Executable file
33
sbin/docker_mk_dir
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#set -o errexit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
grep -e _LOG_ -e _LIB_ .env | grep -e _EXT= | while read line
|
||||||
|
do
|
||||||
|
OIFS=$IFS
|
||||||
|
IFS="="
|
||||||
|
|
||||||
|
set $line
|
||||||
|
|
||||||
|
IFS=$OIFS
|
||||||
|
|
||||||
|
|
||||||
|
grep $1 compose.yaml >/dev/null
|
||||||
|
|
||||||
|
if [[ "$?" == "0" ]]
|
||||||
|
then
|
||||||
|
eval echo $2
|
||||||
|
fi
|
||||||
|
done | sort -u | while read dir
|
||||||
|
do
|
||||||
|
echo "Add/Create: [${dir}]"
|
||||||
|
|
||||||
|
mkdir -p ${dir}
|
||||||
|
echo -e '# Ignore everything in this directory\n*\n# Except this file\n!.gitignore' > ${dir}/.gitignore
|
||||||
|
|
||||||
|
git add ${dir}/.gitignore
|
||||||
|
done
|
||||||
|
|
@ -1,10 +1,36 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# DOCKER_TOOLS_DEBUG= TRUE | FALSE # Enable debugging (Default FALSE)
|
||||||
|
#
|
||||||
|
# DOCKER_TOOLS_VOLUME= SINGLE | MIXED | MERGED | SPLITED # Default: SPLITED
|
||||||
|
# SINGLE: Merged volume mode + No service suffix
|
||||||
|
# MIXED: Merged volume mode + Init/SV log Service suffix
|
||||||
|
# MERGED: Merged volume mode + Full service suffix
|
||||||
|
# SPLITED: By service volume mode + No service suffix
|
||||||
|
#
|
||||||
|
# DOCKER_TOOLS_EXEPTION_LIBS="module_name:lib_dir_name ..."
|
||||||
|
# Example: "postgres:pgsq httpd:/var/www/html"
|
||||||
|
#
|
||||||
|
# DOCKER_TOOLS_EXEPTION_LOGS="module_name:log_dir_name ..."
|
||||||
|
# Example: "postgres:web-server:httpd"
|
||||||
|
#
|
||||||
|
# DOCKER_TOOLS_USER_GROUP_FORCE= TRUE | FALSE # Force using curent user / group (Default FALSE)
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
|
if [[ "${DOCKER_TOOLS_DEBUG}" == "TRUE" ]]
|
||||||
|
then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
|
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
|
||||||
DYNVAR_LIST=""
|
DYNVAR_LIST="APPL_HOME_DIR"
|
||||||
|
CONFIG_FILE_LIST=""
|
||||||
|
|
||||||
version="$1"
|
version="$1"
|
||||||
|
|
||||||
@ -24,86 +50,283 @@ function dynvar_export
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
function psfix_cat
|
||||||
|
{
|
||||||
|
prefix=$1
|
||||||
|
separator=$2
|
||||||
|
suffix=$3
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "${prefix}" == "" ]] || [[ "${suffix}" == "" ]]
|
||||||
|
then
|
||||||
|
separator=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${prefix}${separator}${suffix}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
function module_lib_name_get
|
||||||
|
{
|
||||||
|
module=$1
|
||||||
|
|
||||||
|
for tup in ${DOCKER_TOOLS_EXEPTION_LIBS}
|
||||||
|
do
|
||||||
|
if [[ "${module}" == "${tup/:*}" ]]
|
||||||
|
then
|
||||||
|
echo ${tup/*:}
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "${module}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
function module_log_name_get
|
||||||
|
{
|
||||||
|
module=$1
|
||||||
|
|
||||||
|
for tup in ${DOCKER_TOOLS_EXEPTION_LOGS}
|
||||||
|
do
|
||||||
|
if [[ "${module}" == "${tup/:*}" ]]
|
||||||
|
then
|
||||||
|
echo ${tup/*:}
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "${module}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
function docker_service_add
|
function docker_service_add
|
||||||
{
|
{
|
||||||
varible_prefix="$1"
|
varible_prefix="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
for var in NAME NAME_FULL URL_PREFIX IMG_NAME APPL_NAME VERSION_EXT VERSION_INT PORT_MAIN_EXT PORT_MAIN_INT PORT_ADMIN_EXT PORT_ADMIN_INT USER_NAME GROUP_NAME
|
for var in service_name target_url_prefix target_name target_name_full target_version from_url_prefix from_name from_version module_name module_version port_main_ext port_main_int port_admin_ext port_admin_int user_name_id group_name_id
|
||||||
do
|
do
|
||||||
dynvar_export "${varible_prefix}_${var}" "$1"
|
eval ${var}=\"${1}\"
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Service variables
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_SERVICE_NAME" "${service_name}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dynvar_export "${varible_prefix}_LOG_INT_INIT_DIR" "/var/log/init"
|
# Global Image variables
|
||||||
dynvar_export "${varible_prefix}_LOG_EXT_INIT_DIR" "./var/log/init-\${${varible_prefix}_NAME}"
|
|
||||||
dynvar_export "${varible_prefix}_LOG_INT_SV_DIR" "/var/log/supervisor"
|
if [[ "${target_name}" == "-" ]]
|
||||||
dynvar_export "${varible_prefix}_LOG_EXT_SV_DIR" "./var/log/supervisor-\${${varible_prefix}_NAME}"
|
|
||||||
|
|
||||||
if [[ $( eval echo \${${varible_prefix}_APPL_NAME}) != "-" ]]
|
|
||||||
then
|
then
|
||||||
dynvar_export "${varible_prefix}_LIB_INT_DIR" "/var/lib/\${${varible_prefix}_APPL_NAME}"
|
target_name="${service_name}"
|
||||||
dynvar_export "${varible_prefix}_LIB_EXT_DIR" "./var/lib/\${${varible_prefix}_APPL_NAME}"
|
|
||||||
dynvar_export "${varible_prefix}_LOG_INT_MAIN_DIR" "/var/log/\${${varible_prefix}_APPL_NAME}"
|
|
||||||
dynvar_export "${varible_prefix}_LOG_EXT_MAIN_DIR" "./var/log/\${${varible_prefix}_APPL_NAME}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $( eval echo \${${varible_prefix}_IMG_NAME}) != "-" ]]
|
dynvar_export "${varible_prefix}_IMG_NAME" "${target_name}"
|
||||||
|
dynvar_export "${varible_prefix}_IMG_NAME_FULL" "${target_name_full}"
|
||||||
|
dynvar_export "${varible_prefix}_IMG_VERSION" "${target_version}"
|
||||||
|
dynvar_export "${varible_prefix}_IMG_MAINTAINER" "\${ORG_MAINTAINER}"
|
||||||
|
dynvar_export "${varible_prefix}_IMG_URL" "${target_url_prefix}/${target_name}:${target_version}"
|
||||||
|
|
||||||
|
if [[ "${service_name}" == "${APPL_NAME}" ]]
|
||||||
then
|
then
|
||||||
# No Build
|
# dynvar_export "${varible_prefix}_IMG_URL" "${target_url_prefix}:${target_version}"
|
||||||
|
dynvar_export "${varible_prefix}_HOST_NAME" "$( psfix_cat "${HOST_NAME_PREFIX}" "-" "webapp")"
|
||||||
dynvar_export "${varible_prefix}_IMG_URL" "\${${varible_prefix}_URL_PREFIX}/\${${varible_prefix}_IMG_NAME}:\${${varible_prefix}_VERSION_EXT}"
|
|
||||||
else
|
else
|
||||||
|
# dynvar_export "${varible_prefix}_IMG_URL" "${target_url_prefix}/${target_name}:${target_version}"
|
||||||
|
dynvar_export "${varible_prefix}_HOST_NAME" "$( psfix_cat "${HOST_NAME_PREFIX}" "-" "${service_name}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Building variables
|
||||||
|
|
||||||
|
if [[ "${module_name}" == "-" ]]
|
||||||
|
then
|
||||||
|
module_name="${target_name}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${target_name_full}" != "-" ]]
|
||||||
|
then
|
||||||
# Build
|
# Build
|
||||||
|
|
||||||
dynvar_export "${varible_prefix}_IMG_URL" "\${${varible_prefix}_URL_PREFIX}/\${${varible_prefix}_NAME}:\${${varible_prefix}_VERSION_EXT}"
|
dynvar_export "${varible_prefix}_MODULE_NAME" "${module_name}"
|
||||||
|
dynvar_export "${varible_prefix}_MODULE_PATH" "src/${module_name}"
|
||||||
dynvar_export "${varible_prefix}_MODULE_NAME" "\${${varible_prefix}_NAME}"
|
dynvar_export "${varible_prefix}_MODULE_VERSION" "${module_version}"
|
||||||
dynvar_export "${varible_prefix}_MODULE_PATH" "src/\${${varible_prefix}_NAME}"
|
|
||||||
|
dynvar_export "${varible_prefix}_IMG_FROM_URL" "${from_url_prefix}/${from_name}:${from_version}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dynvar_export "${varible_prefix}_CONTAINER_NAME" "${CONTAINER_NAME_PREFIX}-\${${varible_prefix}_NAME}"
|
|
||||||
dynvar_export "${varible_prefix}_HOST" "\${${varible_prefix}_CONTAINER_NAME}"
|
|
||||||
|
|
||||||
dynvar_export "${varible_prefix}_PORT_MAIN_EXT" "\$(( \${${varible_prefix}_PORT_MAIN_EXT} + ${PORT_ENV_OFFSET}))"
|
|
||||||
dynvar_export "${varible_prefix}_PORT_SV_EXT" "\$(( \${${varible_prefix}_PORT_MAIN_EXT} + ${PORT_SV_OFFSET}))"
|
|
||||||
dynvar_export "${varible_prefix}_PORT_SV_INT" "9001"
|
|
||||||
|
|
||||||
if [[ $( eval echo \${${varible_prefix}_PORT_ADMIN_EXT}) != "-" ]]
|
# Volume Directories
|
||||||
then
|
|
||||||
dynvar_export "${varible_prefix}_PORT_ADMIN_EXT" "\$(( \${${varible_prefix}_PORT_ADMIN_EXT} + ${PORT_ENV_OFFSET}))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $( eval echo \${${varible_prefix}_USER_NAME}) == "-" ]]
|
if [[ "${APPL_NAME}" != "" ]]
|
||||||
then
|
then
|
||||||
dynvar_export "${varible_prefix}_USER_ID" "-"
|
dynvar_export "${varible_prefix}_CONTEXT_PATH" "/${APPL_NAME}/${service_name}/"
|
||||||
else
|
else
|
||||||
if [[ $( eval echo \${${varible_prefix}_USER_NAME}) =~ ^[0-9]+$ ]]
|
DOCKER_TOOLS_VOLUME="SINGLE"
|
||||||
then
|
dynvar_export "${varible_prefix}_CONTEXT_PATH" "/${service_name}/"
|
||||||
dynvar_export "${varible_prefix}_USER_ID" "\${${varible_prefix}_USER_NAME}"
|
|
||||||
else
|
|
||||||
dynvar_export "${varible_prefix}_USER_ID" "\$( id -u \${${varible_prefix}_USER_NAME})"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $( eval echo \${${varible_prefix}_GROUP_NAME}) == "-" ]]
|
|
||||||
|
if [[ "${DOCKER_TOOLS_VOLUME}" == "" ]]
|
||||||
then
|
then
|
||||||
dynvar_export "${varible_prefix}_GROUP_ID" "-"
|
DOCKER_TOOLS_VOLUME="SPLITED"
|
||||||
else
|
fi
|
||||||
if [[ $( eval echo \${${varible_prefix}_GROUP_NAME}) =~ ^[0-9]+$ ]]
|
|
||||||
|
if [[ "${DOCKER_TOOLS_VOLUME}" != "SPLITED" ]]
|
||||||
|
then
|
||||||
|
volume_prefix="."
|
||||||
|
else
|
||||||
|
volume_prefix="./mnt/${service_name}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "${DOCKER_TOOLS_VOLUME}" == "SINGLE" ]] || [[ "${DOCKER_TOOLS_VOLUME}" == "SPLITED" ]]
|
||||||
|
then
|
||||||
|
volume_suffix_initsv_ext=""
|
||||||
|
volume_suffix_module_ext=""
|
||||||
|
else
|
||||||
|
volume_suffix_initsv_ext="${service_name}"
|
||||||
|
|
||||||
|
if [[ "${DOCKER_TOOLS_VOLUME}" == "MIXED" ]]
|
||||||
then
|
then
|
||||||
dynvar_export "${varible_prefix}_GROUP_ID" "\${${varible_prefix}_GROUP_NAME}"
|
volume_suffix_module_ext=""
|
||||||
else
|
else
|
||||||
dynvar_export "${varible_prefix}_GROUP_ID" "\$( getent group \${${varible_prefix}_GROUP_NAME} | cut -d: -f3)"
|
volume_suffix_module_ext="${service_name}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dynvar_export "${varible_prefix}_CONTEXT_PATH" "/${APPL_NAME}/\${${varible_prefix}_NAME}/"
|
|
||||||
|
|
||||||
|
module_lib_name="$( module_lib_name_get "${module_name}")"
|
||||||
|
|
||||||
# dynvar_export "${varible_prefix}_" "${varible_prefix}_${}"
|
if [[ "${module_lib_name}" != /* ]]
|
||||||
|
then
|
||||||
|
path_prefix="/var/lib/"
|
||||||
|
else
|
||||||
|
path_prefix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
module_lib_path=${path_prefix}${module_lib_name}
|
||||||
|
|
||||||
|
|
||||||
|
module_log_name="$( module_log_name_get "${module_name}")"
|
||||||
|
|
||||||
|
if [[ "${module_log_name}" != /* ]]
|
||||||
|
then
|
||||||
|
path_prefix="/var/log/"
|
||||||
|
else
|
||||||
|
path_prefix=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
module_log_path=${path_prefix}${module_log_name}
|
||||||
|
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_LIB_INT" "${module_lib_path}"
|
||||||
|
dynvar_export "${varible_prefix}_LIB_EXT" "$( psfix_cat "${volume_prefix}${module_lib_path}" "-" "${volume_suffix_module_ext}")"
|
||||||
|
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_LOG_INIT_INT" "/var/log/init"
|
||||||
|
dynvar_export "${varible_prefix}_LOG_INIT_EXT" "$( psfix_cat "${volume_prefix}/var/log/init" "-" "${volume_suffix_initsv_ext}")"
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_LOG_SV_INT" "/var/log/supervisor"
|
||||||
|
dynvar_export "${varible_prefix}_LOG_SV_EXT" "$( psfix_cat "${volume_prefix}/var/log/supervisor" "-" "${volume_suffix_initsv_ext}")"
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_LOG_MAIN_INT" "${module_log_path}"
|
||||||
|
dynvar_export "${varible_prefix}_LOG_MAIN_EXT" "$( psfix_cat "${volume_prefix}${module_log_path}" "-" "${volume_suffix_module_ext}")"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Ports
|
||||||
|
|
||||||
|
if [[ "${port_main_int}" != "-" ]]
|
||||||
|
then
|
||||||
|
dynvar_export "${varible_prefix}_PORT_MAIN_INT" "${port_main_int}"
|
||||||
|
dynvar_export "${varible_prefix}_PORT_MAIN_EXT" "\$(( ${port_main_ext} + ${PORT_ENV_OFFSET}))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${PORT_SV_INT}" != "" ]]
|
||||||
|
then
|
||||||
|
dynvar_export "${varible_prefix}_PORT_SV_INT" "${PORT_SV_INT}"
|
||||||
|
dynvar_export "${varible_prefix}_PORT_SV_EXT" "\$(( \${${varible_prefix}_PORT_MAIN_EXT} + ${PORT_SV_OFFSET}))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${port_admin_int}" != "-" ]]
|
||||||
|
then
|
||||||
|
dynvar_export "${varible_prefix}_PORT_ADMIN_INT" "${port_admin_int}"
|
||||||
|
dynvar_export "${varible_prefix}_PORT_ADMIN_EXT" "\$(( ${port_admin_ext} + ${PORT_ENV_OFFSET}))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# User & Group
|
||||||
|
|
||||||
|
if [[ "${user_name_id}" == "-" ]]
|
||||||
|
then
|
||||||
|
user_name="-"
|
||||||
|
user_id="-"
|
||||||
|
else
|
||||||
|
if [[ "${DOCKER_TOOLS_USER_GROUP_FORCE}" == "TRUE" ]]
|
||||||
|
then
|
||||||
|
user_name_id=$( id -u)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${user_name_id}" =~ ^[0-9]+$ ]]
|
||||||
|
then
|
||||||
|
user_name="-"
|
||||||
|
user_id="${user_name_id}"
|
||||||
|
else
|
||||||
|
user_name="${user_name_id}"
|
||||||
|
user_id="$( id -u "${user_name}")"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_USER_NAME" "${user_name}"
|
||||||
|
dynvar_export "${varible_prefix}_USER_ID" "${user_id}"
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "${group_name_id}" == "-" ]]
|
||||||
|
then
|
||||||
|
group_name="-"
|
||||||
|
group_id="-"
|
||||||
|
else
|
||||||
|
if [[ "${DOCKER_TOOLS_USER_GROUP_FORCE}" == "TRUE" ]]
|
||||||
|
then
|
||||||
|
group_name_id=$( id -g)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${group_name_id}" =~ ^[0-9]+$ ]]
|
||||||
|
then
|
||||||
|
group_name="-"
|
||||||
|
group_id="${group_name_id}"
|
||||||
|
else
|
||||||
|
group_name="${group_name_id}"
|
||||||
|
group_id="$( getent group "${group_name}" | cut -d: -f3)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dynvar_export "${varible_prefix}_GROUP_NAME" "${group_name}"
|
||||||
|
dynvar_export "${varible_prefix}_GROUP_ID" "${group_id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
function docker_config_add
|
||||||
|
{
|
||||||
|
config_file_target="$1"
|
||||||
|
config_file_source="$2"
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_FILE_LIST+=" ${config_file_target}:${config_file_source}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -124,8 +347,37 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
>${APPL_HOME_DIR}/.env
|
>${APPL_HOME_DIR}/.env
|
||||||
|
ENV_SED=""
|
||||||
|
ENV_NET_SED=""
|
||||||
|
|
||||||
for var in $( ( grep "^ *[a-zA-Z0-9_-]*=" ${APPL_HOME_DIR}/env | sed -e "s/=.*//" -e "s/ *//"; echo ${DYNVAR_LIST} | sed -e 's/ /\n/g') | sort -u)
|
for var in $( ( grep "^ *[a-zA-Z0-9_-]*=" ${APPL_HOME_DIR}/env | sed -e "s/=.*//" -e "s/ *//"; echo ${DYNVAR_LIST} | sed -e 's/ /\n/g') | sort -u)
|
||||||
do
|
do
|
||||||
echo "${var}='${!var}'" >>${APPL_HOME_DIR}/.env
|
echo "${var}='${!var}'" >>${APPL_HOME_DIR}/.env
|
||||||
|
|
||||||
|
|
||||||
|
pat="s/\${${var}}/${!var//\//\\/}/g
|
||||||
|
"
|
||||||
|
ENV_SED="${ENV_SED}${pat}"
|
||||||
|
|
||||||
|
if [[ ${var} =~ _HOST_ ]] || ( [[ ${var} =~ _PORT_ ]] && [[ ${var} =~ _INT ]])
|
||||||
|
then
|
||||||
|
ENV_NET_SED="${ENV_NET_SED}${pat}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ENV_NET_SED=\'"${ENV_NET_SED}"\' >>${APPL_HOME_DIR}/.env
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for tupple in ${CONFIG_FILE_LIST}
|
||||||
|
do
|
||||||
|
IFS=":"
|
||||||
|
set ${tupple}
|
||||||
|
|
||||||
|
config_file_target="$1"
|
||||||
|
config_file_source="$2"
|
||||||
|
IFS=" "
|
||||||
|
|
||||||
|
|
||||||
|
sed <${config_file_source} >${config_file_target} -e "${ENV_SED}"
|
||||||
done
|
done
|
||||||
|
25
sbin/docker_network_down
Executable file
25
sbin/docker_network_down
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
. .env
|
||||||
|
|
||||||
|
if [[ "${NETWORK_TABLE}" != "" ]]
|
||||||
|
then
|
||||||
|
if [[ "$( ip rule list | grep "from ${NETWORK_ADDRESS}")" != "" ]]
|
||||||
|
then
|
||||||
|
ip rule del from ${NETWORK_ADDRESS}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$( ip route list table ${NETWORK_TABLE} | grep "${NETWORK_SUBNET}")" != "" ]]
|
||||||
|
then
|
||||||
|
ip route del ${NETWORK_SUBNET} table ${NETWORK_TABLE}
|
||||||
|
fi
|
||||||
|
fi
|
21
sbin/docker_network_up
Executable file
21
sbin/docker_network_up
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
. .env
|
||||||
|
|
||||||
|
if [[ "${NETWORK_TABLE}" != "" ]]
|
||||||
|
then
|
||||||
|
sbin/docker_network_down
|
||||||
|
|
||||||
|
ip rule add from ${NETWORK_ADDRESS} table ${NETWORK_TABLE}
|
||||||
|
|
||||||
|
ip route add ${NETWORK_SUBNET} dev ${NETWORK_IF_NAME} table ${NETWORK_TABLE}
|
||||||
|
fi
|
@ -13,3 +13,5 @@ sbin/docker_mk_env
|
|||||||
|
|
||||||
docker compose pull
|
docker compose pull
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
|
sbin/docker_network_up
|
||||||
|
@ -10,3 +10,5 @@ APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
docker compose down
|
docker compose down
|
||||||
|
|
||||||
|
sbin/docker_network_down
|
||||||
|
48
sbin/docker_tools_install
Executable file
48
sbin/docker_tools_install
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
DOCKER_TOOLS_HOME_DIR="$(dirname "$(dirname "$0")")"
|
||||||
|
|
||||||
|
if [[ "$1" == "" ]]
|
||||||
|
then
|
||||||
|
APPL_HOME_DIR="$PWD"
|
||||||
|
else
|
||||||
|
APPL_HOME_DIR="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
function link_create
|
||||||
|
{
|
||||||
|
source="$1"
|
||||||
|
target="$2"
|
||||||
|
|
||||||
|
if [[ -d "$target" ]]
|
||||||
|
then
|
||||||
|
real_target=${target}/$( basename "${source}")
|
||||||
|
else
|
||||||
|
real_target=${target}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "${real_target}" ]]
|
||||||
|
then
|
||||||
|
mv ${real_target} ${real_target}.old
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -s ${source} ${target}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DOCKER_TOOLS_HOME_DIR=$( realpath --relative-to ${APPL_HOME_DIR} ${DOCKER_TOOLS_HOME_DIR})
|
||||||
|
cd ${APPL_HOME_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
link_create ${DOCKER_TOOLS_HOME_DIR}/sbin .
|
||||||
|
|
||||||
|
link_create env.dist env
|
Loading…
Reference in New Issue
Block a user