feat: add ability to specify a custom Dockerfile for an app

This commit is contained in:
Jose Diaz-Gonzalez
2021-03-21 21:43:53 -04:00
parent 6d40d52d7d
commit da2b54823b
10 changed files with 284 additions and 8 deletions

View File

@@ -1,7 +1,9 @@
#!/usr/bin/env bash
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_AVAILABLE_PATH/config/functions"
source "$PLUGIN_AVAILABLE_PATH/builder-dockerfile/internal-functions"
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_AVAILABLE_PATH/config/functions"
trigger-builder-dockerfile-builder-build() {
declare desc="builder-dockerfile builder-build plugin trigger"
@@ -19,6 +21,19 @@ trigger-builder-dockerfile-builder-build() {
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
local NEW_DOCKERFILE="$(fn-builder-dockerfile-computed-dockerfile-path "$APP")"
if [[ -f "$NEW_DOCKERFILE" ]]; then
if [[ "$NEW_DOCKERFILE" != "Dockerfile" ]]; then
mv "$NEW_DOCKERFILE" Dockerfile
fi
else
rm Dockerfile
fi
if [[ ! -f Dockerfile ]]; then
dokku_log_fail "Invalid dockerfile-path specified: $dockerfile_path"
fi
# extract first port from Dockerfile
dos2unix Dockerfile
local DOCKERFILE_PORTS=$(get_dockerfile_exposed_ports Dockerfile)
@@ -34,7 +49,7 @@ trigger-builder-dockerfile-builder-build() {
declare -a ARG_ARRAY
eval "ARG_ARRAY=($DOCKER_ARGS)"
"$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" "${DOKKU_DOCKER_BUILD_OPTS[@]}" -t $IMAGE .
"$DOCKER_BIN" image build --file "$dockerfile_path" "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" "${DOKKU_DOCKER_BUILD_OPTS[@]}" -t $IMAGE .
plugn trigger post-build-dockerfile "$APP"
}