diff --git a/dk b/dk index 1dc77ac..96b60dc 100755 --- a/dk +++ b/dk @@ -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 }