dk: support merge .shared_env et .machine_env

This commit is contained in:
Jephté Clain 2020-11-12 21:56:10 +04:00
parent 45c40d735b
commit 24d05192d1
1 changed files with 23 additions and 4 deletions

27
dk
View File

@ -451,10 +451,6 @@ function docker_set_env_args() {
[ -n "$PROFILE" -a -f ".build.$PROFILE.env" ] && source "./.build.$PROFILE.env"
[ -n "$PROFILE" -a -f "build.$PROFILE.env" ] && source "./build.$PROFILE.env"
}
function docker_set_run_args() {
replace_run_args+=(--env-file "$1")
source "$1"
}
function docker_check_name() {
[ -n "$NAME" ] || die "Vous devez définir NAME dans .build.env"
@ -983,6 +979,27 @@ function build_update_apps() {
eend
}
function build_merge_env() {
# si les fichiers .env-all et/ou .env-machine-$MACHINE existent, où $MACHINE
# est la machine actuellement sélectionnée, alors les merger pour créer le
# fichier .env
# Si DOCKER_MACHINE n'est pas défini, prendre par défaut HOSTNAME
local machine="${DOCKER_MACHINE_NAME:-$HOSTNAME}"
local shared=.shared_env for_machine=".${machine}_env"
[ -f "$shared" -o -f "$for_machine" ] || return 0
echo >.env "## fichier auto-généré. ne pas modifier ##"
if [ -f "$shared" ]; then
echo "## $shared ##" >>.env
cat "$shared" >>.env
fi
if [ -f "$for_machine" ]; then
echo "## $for_machine ##" >>.env
cat "$for_machine" >>.env
fi
}
function initialize_build_env() {
CTXDIR=.
NAME=
@ -1056,6 +1073,7 @@ function auto_build() {
compose_set_env_args
update_build_env "${bargs[@]}"
build_update_apps || return 1
build_merge_env
compose_build "$@"
elif [ -f Dockerfile ]; then
docker_parse_env_args
@ -1070,6 +1088,7 @@ function auto_build() {
done
${FAKE:+qvals} "$DOCKER" build \
${NO_CACHE:+--no-cache} \
${PULL:+--pull} \
"${replace_build_args[@]}" "$@"
fi
}