diff --git a/CHANGELOG.md b/CHANGELOG.md index 6caed11..4551538 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Module + - AirFlow - Docker - docker-container-run-shell diff --git a/src/airflow/airflow-lab-run b/src/airflow/airflow-lab-run new file mode 100755 index 0000000..030b637 --- /dev/null +++ b/src/airflow/airflow-lab-run @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +# template-one: 2.0.0 +####################################### +# Airflow / Lab / Run +# +# Version: 1.0.0 +# +####################################### +# Copyright [2024] [serdigital64@gmail.com] +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +####################################### + +# +# Imports +# + +declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}" +# shellcheck source-path=SCRIPTDIR/.. +source "${S64_CORE_PATH_ROOT}/core/core-lib" && source "${S64_CORE_PATH_ROOT}/core/airflow-lib" || { echo "Error: unable to load module library" && exit 1; } +# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64 +source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" || { echo 'Error: unable to load bashlib64' && exit 1; } + +# +# Functions +# + +function initialize() { + bl64_dbg_app_show_function + s64_airflow_lib_setup +} + +# +# Main +# + +declare MAIN_HOST_PORT="${1:-8080}" +declare MAIN_CONTAINER_VERSION="${2:-latest}" + +bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" && initialize || exit $? +bl64_msg_show_setup 'Run AirFlow Standalone container for local lab testing' \ + 'MAIN_HOST_PORT' \ + 'MAIN_CONTAINER_VERSION' +bl64_msg_show_batch_start "$BL64_SCRIPT_ID" +bl64_cnt_run_docker \ + run \ + --rm \ + --tty \ + --interactive \ + --publish 8080:8080 \ + apache/airflow:latest \ + standalone +bl64_msg_show_batch_finish $? "$BL64_SCRIPT_ID" diff --git a/src/core/airflow-lib b/src/core/airflow-lib new file mode 100755 index 0000000..0af15d9 --- /dev/null +++ b/src/core/airflow-lib @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# template-module-lib: 2.0.0 +####################################### +# Airflow / Lib +# +# Version: 1.0.0 +# +####################################### +# Copyright [2024] [serdigital64@gmail.com] +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +####################################### + +# +# Imports +# + +# shellcheck disable=SC2015,SC2154 source-path=SCRIPTDIR/../../lib/bl64 +source "${S64_CORE_PATH_BL64}/bashlib64-module-fs.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-txt.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-xsv.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-fmt.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-bsh.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-cnt.bash" && + source "${S64_CORE_PATH_BL64}/bashlib64-module-bsh.bash" || + { echo 'Error: unable to load bashlib64' && exit 1; } + +# +# Functions +# + +function s64_airflow_lib_setup() { + bl64_dbg_app_show_function + bl64_cnt_setup +} diff --git a/src/docker/docker-container-run-shell b/src/docker/docker-container-run-shell index 51f06d3..62ddf5d 100755 --- a/src/docker/docker-container-run-shell +++ b/src/docker/docker-container-run-shell @@ -1,9 +1,11 @@ #!/usr/bin/env bash # template-one: 2.0.0 +# template-one-base: 1.0.0 +# template-import: 2.0.0 ####################################### # Docker / Container / Run / Shell # -# Version: 1.1.0 +# Version: 1.0.0 # ####################################### # Copyright [2024] [serdigital64@gmail.com] @@ -26,9 +28,9 @@ # declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}" -# shellcheck disable=SC2015 source-path=SCRIPTDIR/.. +# shellcheck source-path=SCRIPTDIR/.. source "${S64_CORE_PATH_ROOT}/core/core-lib" && source "${S64_CORE_PATH_ROOT}/core/docker-lib" || { echo "Error: unable to load module library" && exit 1; } -# shellcheck disable=SC2015,SC2154 source-path=SCRIPTDIR/../../lib/bl64 +# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64 source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" || { echo 'Error: unable to load bashlib64' && exit 1; } # @@ -45,8 +47,9 @@ function initialize() { # Main # -declare M_IMAGE_NAME="${1:-alpine:latest}" -declare M_ENTRYPOINT="${2:-sh}" +declare CONTAINER_IMAGE="${1:-alpine:latest}" +declare ENTRY_POINT="${2:-sh}" +shift; shift bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" && initialize || exit $? bl64_msg_show_batch_start "$BL64_SCRIPT_ID" @@ -55,6 +58,7 @@ bl64_cnt_run_docker \ --rm \ --tty \ --interactive \ - --entrypoint="$M_ENTRYPOINT" \ - "$M_IMAGE_NAME" + --entrypoint="$ENTRY_POINT" \ + "$CONTAINER_IMAGE" \ + "$@" bl64_msg_show_batch_finish $? "$BL64_SCRIPT_ID"