6 Commits

12 changed files with 170 additions and 11 deletions

View File

@@ -7,14 +7,17 @@ This project aims to give some basic tools to be used by other Rx3 docker packag
Features: Features:
- docker_tools_install & docker_mk_dir to setup a new application environment, - 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_restart & docker_logs command,
- docker_network_up & docker_network_down automatically called to setup external network rule & route,
- docker_service_add env file function, - docker_service_add env file function,
- docker_build_push. - docker_build_push & docker_sbs (Stop / Build / Start),
Support different mounted volume modes: Support different mounted volume modes:
- Single, - Single,
- Merged, (Old mode) - Mixed (Old mode),
- Splited. (Default) - Merged,
- Splited (Default).
Enjoy it! Enjoy it!

View File

@@ -1,3 +1,36 @@
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Docker/Docker Tools V 1.4.1 - A. GIBERT - 2026/02/28
------------------------------------------------------------------------------------------------------------------------------------
- Add docker_restart & docker_sbs scripts.
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Docker/Docker Tools V 1.4.0 - A. GIBERT - 2025/08/06
------------------------------------------------------------------------------------------------------------------------------------
- Add docker_network_up & docker_network_down scripts called by docker_start & docker_stop,
- Add cd in script to allow external docker application dir call.
------------------------------------------------------------------------------------------------------------------------------------
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 Rx3-Docker/Docker Tools V 1.3.5 - A. GIBERT - 2025/01/24
------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------

View File

@@ -9,6 +9,9 @@ APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
sbin/docker_mk_env sbin/docker_mk_env
docker compose build docker compose build

View File

@@ -9,4 +9,7 @@ APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
docker compose logs -f docker compose logs -f

View File

@@ -3,6 +3,13 @@
#set -o errexit #set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
grep -e _LOG_ -e _LIB_ .env | grep -e _EXT= | while read line grep -e _LOG_ -e _LIB_ .env | grep -e _EXT= | while read line

View File

@@ -3,12 +3,12 @@
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# #
# DOCKER_TOOLS_DEBUG= TRUE | FALSE # Enable debugging (Default FALSE) # DOCKER_TOOLS_DEBUG= TRUE | FALSE # Enable debugging (Default FALSE)
# #
# DOCKER_TOOLS_VOLUME= SINGLE | MERGED | SPLITED # Default: SPLITED # DOCKER_TOOLS_VOLUME= SINGLE | MIXED | MERGED | SPLITED # Default: SPLITED
# SINGLE: Merged volume mode + No service suffix # SINGLE: Merged volume mode + No service suffix
# MIXED: Merged volume mode + Init/SV log Service suffix # MIXED: Merged volume mode + Init/SV log Service suffix
# MERGED: Merged volume mode + Full service suffix # MERGED: Merged volume mode + Full service suffix
# SPLITED: By service volume mode + No service suffix # SPLITED: By service volume mode + No service suffix
# #
# DOCKER_TOOLS_EXEPTION_LIBS="module_name:lib_dir_name ..." # DOCKER_TOOLS_EXEPTION_LIBS="module_name:lib_dir_name ..."
@@ -17,6 +17,8 @@
# DOCKER_TOOLS_EXEPTION_LOGS="module_name:log_dir_name ..." # DOCKER_TOOLS_EXEPTION_LOGS="module_name:log_dir_name ..."
# Example: "postgres:web-server:httpd" # 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
@@ -138,10 +140,10 @@ function docker_service_add
if [[ "${service_name}" == "${APPL_NAME}" ]] if [[ "${service_name}" == "${APPL_NAME}" ]]
then then
dynvar_export "${varible_prefix}_IMG_URL" "${target_url_prefix}:${target_version}" # 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}_HOST_NAME" "$( psfix_cat "${HOST_NAME_PREFIX}" "-" "webapp")"
else else
dynvar_export "${varible_prefix}_IMG_URL" "${target_url_prefix}/${target_name}:${target_version}" # 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}")" dynvar_export "${varible_prefix}_HOST_NAME" "$( psfix_cat "${HOST_NAME_PREFIX}" "-" "${service_name}")"
fi fi
@@ -272,6 +274,11 @@ function docker_service_add
user_name="-" user_name="-"
user_id="-" user_id="-"
else else
if [[ "${DOCKER_TOOLS_USER_GROUP_FORCE}" == "TRUE" ]]
then
user_name_id=$( id -u)
fi
if [[ "${user_name_id}" =~ ^[0-9]+$ ]] if [[ "${user_name_id}" =~ ^[0-9]+$ ]]
then then
user_name="-" user_name="-"
@@ -291,6 +298,11 @@ function docker_service_add
group_name="-" group_name="-"
group_id="-" group_id="-"
else else
if [[ "${DOCKER_TOOLS_USER_GROUP_FORCE}" == "TRUE" ]]
then
group_name_id=$( id -g)
fi
if [[ "${group_name_id}" =~ ^[0-9]+$ ]] if [[ "${group_name_id}" =~ ^[0-9]+$ ]]
then then
group_name="-" group_name="-"

28
sbin/docker_network_down Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
#-------------------------------------------------------------------------------
set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
. .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

24
sbin/docker_network_up Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
#-------------------------------------------------------------------------------
set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
. .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

17
sbin/docker_restart Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
#-------------------------------------------------------------------------------
set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
sbin/docker_stop
sbin/docker_start

19
sbin/docker_sbs Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
#-------------------------------------------------------------------------------
set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
sbin/docker_stop
sbin/docker_build_push
sbin/docker_start

View File

@@ -9,7 +9,12 @@ APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
sbin/docker_mk_env sbin/docker_mk_env
docker compose pull docker compose pull
docker compose up -d docker compose up -d
sbin/docker_network_up

View File

@@ -9,4 +9,9 @@ APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
cd ${APPL_HOME_DIR}
docker compose down docker compose down
sbin/docker_network_down