diff --git a/docs/appendices/0.37.0-migration-guide.md b/docs/appendices/0.37.0-migration-guide.md
new file mode 100644
index 000000000..cb33e72df
--- /dev/null
+++ b/docs/appendices/0.37.0-migration-guide.md
@@ -0,0 +1,7 @@
+# 0.36.0 Migration Guide
+
+## Removals
+
+- Support for the `DOKKU_DOCKERFILE_CACHE_BUILD` environment variable has been removed. Use the `docker-options` plugin to set build arguments for your app instead.
+- Support for the `DOKKU_DOCKER_BUILD_OPTS` environment variable has been removed. Use the `docker-options` plugin to set build arguments for your app instead.
+- Support for the `no-cache` nixpacks property has been removed. Use the `docker-options` plugin to set build arguments for your app instead.
diff --git a/docs/configuration/environment-variables.md b/docs/configuration/environment-variables.md
index d2c21fd50..dd805bd0f 100644
--- a/docs/configuration/environment-variables.md
+++ b/docs/configuration/environment-variables.md
@@ -110,7 +110,6 @@ The following config variables have special meanings and can be set in a variety
| `DOKKU_DEFAULT_CHECKS_WAIT` | `10` | `dokku config:set` | If no user-defined checks are specified - or if the process being checked is not a `web` process - this is the period of time Dokku will wait before checking that a container is still running. |
| `DOKKU_DISABLE_PROXY` | none | `dokku proxy:disable`
`dokku proxy:enable` | Disables the proxy in front of your application, resulting in publicly routing the docker container. |
| `DOKKU_DISABLE_APP_AUTOCREATION` | none | `dokku config:set` | Disables automatic creation of a non-existent app on deploy. |
-| `DOKKU_DOCKERFILE_CACHE_BUILD` | none | `dokku config:set` | |
| `DOKKU_DOCKERFILE_START_CMD` | none | `dokku config:set` | |
| `DOKKU_PARALLEL_ARGUMENTS`. | none | `dokku config:set` | Allows passing custom arguments to parallel for `ps:*all` commands |
| `DOKKU_PROXY_PORT` | automatically assigned | `/etc/environment`
`~dokku/.dokkurc`
`~dokku/.dokkurc/*`
`dokku config:set` | |
diff --git a/docs/deployment/builders/dockerfiles.md b/docs/deployment/builders/dockerfiles.md
index 64b3c4726..ec1b7b5ee 100644
--- a/docs/deployment/builders/dockerfiles.md
+++ b/docs/deployment/builders/dockerfiles.md
@@ -199,8 +199,6 @@ dokku config:set node-js-app DOKKU_DOCKERFILE_START_CMD="--harmony server.js"
To tell Docker what to run.
-Setting `$DOKKU_DOCKERFILE_CACHE_BUILD` to `true` or `false` will enable or disable Docker's image layer cache. Lastly, for more granular build control, you may also pass any `docker build` option to `docker`, by setting `$DOKKU_DOCKER_BUILD_OPTS`.
-
### Procfiles and multiple processes
> [!IMPORTANT]
diff --git a/docs/deployment/builders/nixpacks.md b/docs/deployment/builders/nixpacks.md
index 46559ca68..945b424c3 100644
--- a/docs/deployment/builders/nixpacks.md
+++ b/docs/deployment/builders/nixpacks.md
@@ -80,28 +80,10 @@ dokku builder-nixpacks:set --global nixpackstoml-path
### Disabling cache
-Cache is enabled by default, but can be disabled by setting the `no-cache` property to `true`:
+Disable cache using the [docker-options] plugin:
```shell
-dokku builder-nixpacks:set node-js-app no-cache true
-```
-
-The default value may be set by passing an empty value for the option:
-
-```shell
-dokku builder-nixpacks:set node-js-app no-cache
-```
-
-The `no-cache` property can also be set globally. The global default is `false`, and the global value is used when no app-specific value is set.
-
-```shell
-dokku builder-nixpacks:set --global no-cache true
-```
-
-The default value may be set by passing an empty value for the option.
-
-```shell
-dokku builder-nixpacks:set --global no-cache
+dokku docker-options:add node-js-app build "--no-cache"
```
### Displaying builder-nixpacks reports for an app
@@ -117,23 +99,14 @@ dokku builder-nixpacks:report
Builder-nixpacks computed nixpackstoml path: nixpacks2.toml
Builder-nixpacks global nixpackstoml path: nixpacks.toml
Builder-nixpacks nixpackstoml path: nixpacks2.toml
- Builder-nixpacks computed no cache: true
- Builder-nixpacks global no cache: false
- Builder-nixpacks no cache: true
=====> python-sample builder-nixpacks information
Builder-nixpacks computed nixpackstoml path: nixpacks.toml
Builder-nixpacks global nixpackstoml path: nixpacks.toml
Builder-nixpacks nixpackstoml path:
- Builder-nixpacks computed no cache: false
- Builder-nixpacks global no cache: false
- Builder-nixpacks no cache:
=====> ruby-sample builder-nixpacks information
Builder-nixpacks computed nixpackstoml path: nixpacks.toml
Builder-nixpacks global nixpackstoml path: nixpacks.toml
Builder-nixpacks nixpackstoml path:
- Builder-nixpacks computed no cache: false
- Builder-nixpacks global no cache: false
- Builder-nixpacks no cache:
```
You can run the command for a specific app also.
@@ -147,17 +120,14 @@ dokku builder-nixpacks:report node-js-app
Builder-nixpacks computed nixpackstoml path: nixpacks2.toml
Builder-nixpacks global nixpackstoml path: nixpacks.toml
Builder-nixpacks nixpackstoml path: nixpacks2.toml
- Builder-nixpacks computed no cache: true
- Builder-nixpacks global no cache: false
- Builder-nixpacks no cache: true
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
-dokku builder-nixpacks:report node-js-app --builder-nixpacks-no-cache
+dokku builder-nixpacks:report node-js-app --builder-nixpacks-nixpackstoml-path
```
```
-true
+nixpacks2.toml
```
diff --git a/docs/deployment/builders/railpack.md b/docs/deployment/builders/railpack.md
index dc0d634fb..cde329846 100644
--- a/docs/deployment/builders/railpack.md
+++ b/docs/deployment/builders/railpack.md
@@ -89,28 +89,10 @@ dokku builder-railpack:set --global railpackjson-path
### Disabling cache
-Cache is enabled by default, but can be disabled by setting the `no-cache` property to `true`:
+Disable cache using the [docker-options] plugin:
```shell
-dokku builder-railpack:set node-js-app no-cache true
-```
-
-The default value may be set by passing an empty value for the option:
-
-```shell
-dokku builder-railpack:set node-js-app no-cache
-```
-
-The `no-cache` property can also be set globally. The global default is `false`, and the global value is used when no app-specific value is set.
-
-```shell
-dokku builder-railpack:set --global no-cache true
-```
-
-The default value may be set by passing an empty value for the option.
-
-```shell
-dokku builder-railpack:set --global no-cache
+dokku docker-options:add node-js-app build "--no-cache"
```
### Displaying builder-railpack reports for an app
@@ -126,23 +108,14 @@ dokku builder-railpack:report
Builder-railpack computed railpackjson path: railpack2.json
Builder-railpack global railpackjson path: railpack.json
Builder-railpack railpackjson path: railpack2.json
- Builder-railpack computed no cache: true
- Builder-railpack global no cache: false
- Builder-railpack no cache: true
=====> python-sample builder-railpack information
Builder-railpack computed railpackjson path: railpack.json
Builder-railpack global railpackjson path: railpack.json
Builder-railpack railpackjson path:
- Builder-railpack computed no cache: false
- Builder-railpack global no cache: false
- Builder-railpack no cache:
=====> ruby-sample builder-railpack information
Builder-railpack computed railpackjson path: railpack.json
Builder-railpack global railpackjson path: railpack.json
Builder-railpack railpackjson path:
- Builder-railpack computed no cache: false
- Builder-railpack global no cache: false
- Builder-railpack no cache:
```
You can run the command for a specific app also.
@@ -156,17 +129,14 @@ dokku builder-railpack:report node-js-app
Builder-railpack computed railpackjson path: railpack2.json
Builder-railpack global railpackjson path: railpack.json
Builder-railpack railpackjson path: railpack2.json
- Builder-railpack computed no cache: true
- Builder-railpack global no cache: false
- Builder-railpack no cache: true
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
-dokku builder-railpack:report node-js-app --builder-railpack-no-cache
+dokku builder-railpack:report node-js-app --builder-railpack-railpackjson-path
```
```
-true
+railpack2.json
```
diff --git a/docs/getting-started/upgrading/index.md b/docs/getting-started/upgrading/index.md
index 7effb6010..7c3ae989d 100644
--- a/docs/getting-started/upgrading/index.md
+++ b/docs/getting-started/upgrading/index.md
@@ -18,6 +18,8 @@ Docker releases updates periodically to their engine. We recommend reading their
Before upgrading, check the migration guides to get comfortable with new features and prepare your deployment to be upgraded.
+- [Upgrading to 0.37](/docs/appendices/0.37.0-migration-guide.md)
+- [Upgrading to 0.36](/docs/appendices/0.36.0-migration-guide.md)
- [Upgrading to 0.35](/docs/appendices/0.35.0-migration-guide.md)
- [Upgrading to 0.34](/docs/appendices/0.34.0-migration-guide.md)
- [Upgrading to 0.33](/docs/appendices/0.33.0-migration-guide.md)
diff --git a/plugins/builder-dockerfile/builder-build b/plugins/builder-dockerfile/builder-build
index 08a0d5d10..f8c8c46fa 100755
--- a/plugins/builder-dockerfile/builder-build
+++ b/plugins/builder-dockerfile/builder-build
@@ -17,8 +17,6 @@ trigger-builder-dockerfile-builder-build() {
dokku_log_info1 "Building $APP from Dockerfile"
local IMAGE=$(get_app_image_name "$APP")
- local DOKKU_DOCKERFILE_CACHE_BUILD=$(config_get "$APP" "DOKKU_DOCKERFILE_CACHE_BUILD")
- local DOKKU_DOCKER_BUILD_OPTS=$(config_get "$APP" "DOKKU_DOCKER_BUILD_OPTS")
local DOCKER_BUILD_LABEL_ARGS=("--label=dokku" "--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.image-stage=build" "--label=com.dokku.builder-type=dockerfile" "--label=com.dokku.app-name=$APP")
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
@@ -34,17 +32,221 @@ trigger-builder-dockerfile-builder-build() {
fi
plugn trigger pre-build "$BUILDER_TYPE" "$APP" "$SOURCECODE_WORK_DIR"
- [[ "$DOKKU_DOCKERFILE_CACHE_BUILD" == "false" ]] && DOKKU_DOCKER_BUILD_OPTS="$DOKKU_DOCKER_BUILD_OPTS --no-cache"
local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
+ DOCKER_ARGS+=" $DOKKU_GLOBAL_BUILD_ARGS"
- # strip --link, --volume and -v args from DOCKER_ARGS
- local DOCKER_ARGS=$(sed -e "s/^--link=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--link[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^-v[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS")
- declare -a ARG_ARRAY
- eval "ARG_ARRAY=($DOCKER_ARGS)"
+ DOCKER_ARGS=" $DOCKER_ARGS "
+ eval set -- "$DOCKER_ARGS"
+
+ declare -a DOCKERFILE_ARGS
+ while true; do
+ case "$1" in
+ --add-host)
+ DOCKERFILE_ARGS+=("--add-host")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --add-host=*)
+ DOCKERFILE_ARGS+=("--add-host" "${1#--add-host=}")
+ shift 1
+ ;;
+ --allow)
+ DOCKERFILE_ARGS+=("--allow")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --allow=*)
+ DOCKERFILE_ARGS+=("--allow" "${1#--allow=}")
+ shift 1
+ ;;
+ --annotation)
+ DOCKERFILE_ARGS+=("--annotation")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --annotation=*)
+ DOCKERFILE_ARGS+=("--annotation" "${1#--annotation=}")
+ shift 1
+ ;;
+ --attest)
+ DOCKERFILE_ARGS+=("--attest")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --attest=*)
+ DOCKERFILE_ARGS+=("--attest" "${1#--attest=}")
+ shift 1
+ ;;
+ --build-arg)
+ DOCKERFILE_ARGS+=("--build-arg")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --build-arg=*)
+ DOCKERFILE_ARGS+=("--build-arg" "${1#--build-arg=}")
+ shift 1
+ ;;
+ --builder)
+ DOCKERFILE_ARGS+=("--builder")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --builder=*)
+ DOCKERFILE_ARGS+=("--builder" "${1#--builder=}")
+ shift 1
+ ;;
+ --cache-from)
+ DOCKERFILE_ARGS+=("--cache-from")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-from=*)
+ DOCKERFILE_ARGS+=("--cache-from" "${1#--cache-from=}")
+ shift 1
+ ;;
+ --cache-to)
+ DOCKERFILE_ARGS+=("--cache-to")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-to=*)
+ DOCKERFILE_ARGS+=("--cache-to" "${1#--cache-to=}")
+ shift 1
+ ;;
+ --call)
+ DOCKERFILE_ARGS+=("--call")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --call=*)
+ DOCKERFILE_ARGS+=("--call" "${1#--call=}")
+ shift 1
+ ;;
+ --cgroup-parent)
+ DOCKERFILE_ARGS+=("--cgroup-parent")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --cgroup-parent=*)
+ DOCKERFILE_ARGS+=("--cgroup-parent" "${1#--cgroup-parent=}")
+ shift 1
+ ;;
+ --label)
+ DOCKERFILE_ARGS+=("--label")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --label=*)
+ DOCKERFILE_ARGS+=("--label" "${1#--label=}")
+ shift 1
+ ;;
+ --network)
+ DOCKERFILE_ARGS+=("--network")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --network=*)
+ DOCKERFILE_ARGS+=("--network" "${1#--network=}")
+ shift 1
+ ;;
+ --platform)
+ DOCKERFILE_ARGS+=("--platform")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --platform=*)
+ DOCKERFILE_ARGS+=("--platform" "${1#--platform=}")
+ shift 1
+ ;;
+ --progress)
+ DOCKERFILE_ARGS+=("--progress")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --progress=*)
+ DOCKERFILE_ARGS+=("--progress" "${1#--progress=}")
+ shift 1
+ ;;
+ --provenance)
+ DOCKERFILE_ARGS+=("--provenance")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --provenance=*)
+ DOCKERFILE_ARGS+=("--provenance" "${1#--provenance=}")
+ shift 1
+ ;;
+ --sbom)
+ DOCKERFILE_ARGS+=("--sbom")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --sbom=*)
+ DOCKERFILE_ARGS+=("--sbom" "${1#--sbom=}")
+ shift 1
+ ;;
+ --secret)
+ DOCKERFILE_ARGS+=("--secret")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --secret=*)
+ DOCKERFILE_ARGS+=("--secret" "${1#--secret=}")
+ shift 1
+ ;;
+ --shm-size)
+ DOCKERFILE_ARGS+=("--shm-size")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --shm-size=*)
+ DOCKERFILE_ARGS+=("--shm-size" "${1#--shm-size=}")
+ shift 1
+ ;;
+ --ssh)
+ DOCKERFILE_ARGS+=("--platform")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --ssh=*)
+ DOCKERFILE_ARGS+=("--ssh" "${1#--ssh=}")
+ shift 1
+ ;;
+ --target)
+ DOCKERFILE_ARGS+=("--target")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --target=*)
+ DOCKERFILE_ARGS+=("--target" "${1#--target=}")
+ shift 1
+ ;;
+ --ulimit)
+ DOCKERFILE_ARGS+=("--tag")
+ DOCKERFILE_ARGS+=("$2")
+ shift 2
+ ;;
+ --tag=*)
+ DOCKERFILE_ARGS+=("--tag" "${1#--tag=}")
+ shift 1
+ ;;
+ --check | -D | --debug | --no-cache)
+ DOCKERFILE_ARGS+=("$1")
+ shift 1
+ ;;
+ *)
+ if [[ -n "$1" ]]; then
+ shift
+ continue
+ fi
+ break
+ ;;
+ esac
+ done
eval "$(config_export app "$APP")"
- "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" ${DOKKU_DOCKER_BUILD_OPTS} -t $IMAGE .
+ "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" "${DOCKERFILE_ARGS[@]}" --tag $IMAGE .
plugn trigger ports-set-detected "$APP" "$(fn-builder-dockerfile-get-detect-port-map "$APP" "$IMAGE" "$SOURCECODE_WORK_DIR/Dockerfile")"
if fn-plugn-trigger-exists "post-build-dockerfile"; then
diff --git a/plugins/builder-nixpacks/builder-build b/plugins/builder-nixpacks/builder-build
index c27a44921..d74d9ba3a 100755
--- a/plugins/builder-nixpacks/builder-build
+++ b/plugins/builder-nixpacks/builder-build
@@ -27,30 +27,224 @@ trigger-builder-nixpacks-builder-build() {
plugn trigger pre-build "$BUILDER_TYPE" "$APP" "$SOURCECODE_WORK_DIR"
- no_cache="$(fn-builder-nixpacks-computed-no-cache "$APP")"
- NIXPACKS_ARGS=""
- if [[ "$no_cache" == "true" ]]; then
- NIXPACKS_ARGS="$NIXPACKS_ARGS --no-cache"
- fi
-
- local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
- DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
-
- # strip --link, --volume and -v args from DOCKER_ARGS
- local DOCKER_ARGS=$(sed -e "s/^--link=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--link[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^-v[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS")
- declare -a ARG_ARRAY
- eval "ARG_ARRAY=($DOCKER_ARGS)"
-
- eval "$(config_export app "$APP" --merged)"
-
if [[ -f "$SOURCECODE_WORK_DIR/Procfile" ]]; then
if procfile-util exists --process-type release; then
procfile-util delete --process-type release
fi
fi
+ local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
+ DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
+ DOCKER_ARGS+=" $DOKKU_GLOBAL_BUILD_ARGS"
+
+ DOCKER_ARGS=" $DOCKER_ARGS "
+ eval set -- "$DOCKER_ARGS"
+
+ declare -a NIXPACKS_ARGS
+ while true; do
+ case "$1" in
+ -t | --tag)
+ NIXPACKS_ARGS+=("--tag")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -t=* | --tag=*)
+ if [[ "$1" == "--tag=*" ]]; then
+ NIXPACKS_ARGS+=("--tag" "${1#--tag=}")
+ elif [[ "$1" == "-t=*" ]]; then
+ NIXPACKS_ARGS+=("--tag" "${1#-t=}")
+ fi
+ shift 1
+ ;;
+ -i | --install-cmd)
+ NIXPACKS_ARGS+=("--install-cmd")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -i=* | --install-cmd=*)
+ if [[ "$1" == "--install-cmd=*" ]]; then
+ NIXPACKS_ARGS+=("--install-cmd" "${1#--install-cmd=}")
+ elif [[ "$1" == "-i=*" ]]; then
+ NIXPACKS_ARGS+=("--install-cmd" "${1#-i=}")
+ fi
+ shift 1
+ ;;
+ -l | --label)
+ NIXPACKS_ARGS+=("--label")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -l=* | --label=*)
+ if [[ "$1" == "--label=*" ]]; then
+ NIXPACKS_ARGS+=("--label" "${1#--label=}")
+ elif [[ "$1" == "-l=*" ]]; then
+ NIXPACKS_ARGS+=("--label" "${1#-l=}")
+ fi
+ shift 1
+ ;;
+ -b | --build-cmd)
+ NIXPACKS_ARGS+=("--build-cmd")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -b=* | --build-cmd=*)
+ if [[ "$1" == "--build-cmd=*" ]]; then
+ NIXPACKS_ARGS+=("--build-cmd" "${1#--build-cmd=}")
+ elif [[ "$1" == "-b=*" ]]; then
+ NIXPACKS_ARGS+=("--build-cmd" "${1#-b=}")
+ fi
+ shift 1
+ ;;
+ -s | --start-cmd)
+ NIXPACKS_ARGS+=("--start-cmd")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -s=* | --start-cmd=*)
+ if [[ "$1" == "--start-cmd=*" ]]; then
+ NIXPACKS_ARGS+=("--start-cmd" "${1#--start-cmd=}")
+ elif [[ "$1" == "-s=*" ]]; then
+ NIXPACKS_ARGS+=("--start-cmd" "${1#-s=}")
+ fi
+ shift 1
+ ;;
+ -p | --pkgs)
+ NIXPACKS_ARGS+=("--pkgs")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -p=* | --pkgs=*)
+ if [[ "$1" == "--pkgs=*" ]]; then
+ NIXPACKS_ARGS+=("--pkgs" "${1#--pkgs=}")
+ elif [[ "$1" == "-p=*" ]]; then
+ NIXPACKS_ARGS+=("--pkgs" "${1#-p=}")
+ fi
+ shift 1
+ ;;
+ -a | --apt)
+ NIXPACKS_ARGS+=("--apt")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -a=* | --apt=*)
+ if [[ "$1" == "--apt=*" ]]; then
+ NIXPACKS_ARGS+=("--apt" "${1#--apt=}")
+ elif [[ "$1" == "-a=*" ]]; then
+ NIXPACKS_ARGS+=("--apt" "${1#-a=}")
+ fi
+ shift 1
+ ;;
+ -e | --env)
+ NIXPACKS_ARGS+=("--env")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ -e=* | --env=*)
+ if [[ "$1" == "--env=*" ]]; then
+ NIXPACKS_ARGS+=("--env" "${1#--env=}")
+ elif [[ "$1" == "-e=*" ]]; then
+ NIXPACKS_ARGS+=("--env" "${1#-e=}")
+ fi
+ shift 1
+ ;;
+ --platform)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --platform=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-key)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-key=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --incremental-cache-image)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --incremental-cache-image=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --libs)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --libs=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-from)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-from=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --docker-host)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --docker-host=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --add-host)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --add-host=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --docker-tls-verify)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --docker-tls-verify=*)
+ NIXPACKS_ARGS+=("$1")
+ NIXPACKS_ARGS+=("$2")
+ shift 2
+ ;;
+ --no-cache | --inline-cache | --no-error-without-start)
+ NIXPACKS_ARGS+=("$1")
+ shift 1
+ ;;
+ *)
+ if [[ -n "$1" ]]; then
+ shift
+ continue
+ fi
+ break
+ ;;
+ esac
+ done
+
+ eval "$(config_export app "$APP" --merged)"
+
# shellcheck disable=SC2086
- if ! nixpacks build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" $NIXPACKS_ARGS --name "$IMAGE" "$SOURCECODE_WORK_DIR"; then
+ if ! nixpacks build "${DOCKER_BUILD_LABEL_ARGS[@]}" "${NIXPACKS_ARGS[@]}" --name "$IMAGE" "$SOURCECODE_WORK_DIR"; then
dokku_log_warn "Failure building image"
return 1
fi
diff --git a/plugins/builder-nixpacks/internal-functions b/plugins/builder-nixpacks/internal-functions
index 582fc33fa..d2c60a133 100755
--- a/plugins/builder-nixpacks/internal-functions
+++ b/plugins/builder-nixpacks/internal-functions
@@ -38,9 +38,6 @@ cmd-builder-nixpacks-report-single() {
"--builder-nixpacks-computed-nixpackstoml-path: $(fn-builder-nixpacks-computed-nixpackstoml-path "$APP")"
"--builder-nixpacks-global-nixpackstoml-path: $(fn-builder-nixpacks-global-nixpackstoml-path "$APP")"
"--builder-nixpacks-nixpackstoml-path: $(fn-builder-nixpacks-nixpackstoml-path "$APP")"
- "--builder-nixpacks-computed-no-cache: $(fn-builder-nixpacks-computed-no-cache "$APP")"
- "--builder-nixpacks-global-no-cache: $(fn-builder-nixpacks-global-no-cache "$APP")"
- "--builder-nixpacks-no-cache: $(fn-builder-nixpacks-no-cache "$APP")"
)
if [[ -z "$INFO_FLAG" ]]; then
@@ -91,26 +88,3 @@ fn-builder-nixpacks-nixpackstoml-path() {
fn-plugin-property-get "builder-nixpacks" "$APP" "nixpackstoml-path" ""
}
-
-fn-builder-nixpacks-computed-no-cache() {
- declare APP="$1"
-
- file="$(fn-builder-nixpacks-no-cache "$APP")"
- if [[ "$file" == "" ]]; then
- file="$(fn-builder-nixpacks-global-no-cache "$APP")"
- fi
-
- echo "$file"
-}
-
-fn-builder-nixpacks-global-no-cache() {
- declare APP="$1"
-
- fn-plugin-property-get "builder-nixpacks" "--global" "no-cache" "false"
-}
-
-fn-builder-nixpacks-no-cache() {
- declare APP="$1"
-
- fn-plugin-property-get "builder-nixpacks" "$APP" "no-cache" ""
-}
diff --git a/plugins/builder-nixpacks/subcommands/set b/plugins/builder-nixpacks/subcommands/set
index 711b60d72..de7d46513 100755
--- a/plugins/builder-nixpacks/subcommands/set
+++ b/plugins/builder-nixpacks/subcommands/set
@@ -9,13 +9,13 @@ cmd-builder-nixpacks-set() {
declare cmd="builder-nixpacks:set"
[[ "$1" == "$cmd" ]] && shift 1
declare APP="$1" KEY="$2" VALUE="$3"
- local VALID_KEYS=("nixpackstoml-path" "no-cache")
+ local VALID_KEYS=("nixpackstoml-path")
[[ "$APP" == "--global" ]] || verify_app_name "$APP"
[[ -z "$KEY" ]] && dokku_log_fail "No key specified"
if ! fn-in-array "$KEY" "${VALID_KEYS[@]}"; then
- dokku_log_fail "Invalid key specified, valid keys include: nixpackstoml-path, no-cache"
+ dokku_log_fail "Invalid key specified, valid keys include: nixpackstoml-path"
fi
if [[ -n "$VALUE" ]]; then
diff --git a/plugins/builder-pack/builder-build b/plugins/builder-pack/builder-build
index 627662202..305d21514 100755
--- a/plugins/builder-pack/builder-build
+++ b/plugins/builder-pack/builder-build
@@ -38,28 +38,242 @@ trigger-builder-pack-builder-build() {
plugn trigger pre-build "$BUILDER_TYPE" "$APP" "$SOURCECODE_WORK_DIR"
local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
- [[ "$DOKKU_TRACE" ]] && DOCKER_ARGS+=" --env=TRACE=true "
DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
+ [[ "$DOKKU_TRACE" ]] && DOCKER_ARGS+=" --env=TRACE=true "
DOCKER_ARGS=" $DOCKER_ARGS "
- declare -a ARG_ARRAY
- eval "ARG_ARRAY=($DOCKER_ARGS)"
-
eval set -- "$DOCKER_ARGS"
declare -a PACK_ARGS
while true; do
case "$1" in
- --volume=* | -v=*)
- PACK_ARGS+=("$1")
- shift
+ -b | --buildpack)
+ PACK_ARGS+=("--buildpack")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ -b=* | --buildpack=*)
+ if [[ "$1" == "--buildpack=*" ]]; then
+ PACK_ARGS+=("--buildpack" "${1#--buildpack=}")
+ elif [[ "$1" == "-b=*" ]]; then
+ PACK_ARGS+=("--buildpack" "${1#-b=}")
+ fi
+ shift 1
+ ;;
+ -r | --buildpack-registry)
+ PACK_ARGS+=("--buildpack-registry")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ -r=* | --buildpack-registry=*)
+ if [[ "$1" == "--buildpack-registry=*" ]]; then
+ PACK_ARGS+=("--buildpack-registry" "${1#--buildpack-registry=}")
+ elif [[ "$1" == "-r=*" ]]; then
+ PACK_ARGS+=("--buildpack-registry" "${1#-r=}")
+ fi
+ shift 2
+ ;;
+ -e | --env)
+ PACK_ARGS+=("--env")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ -e=* | --env=*)
+ if [[ "$1" == "--env=*" ]]; then
+ PACK_ARGS+=("--env" "${1#--env=}")
+ elif [[ "$1" == "-e=*" ]]; then
+ PACK_ARGS+=("--env" "${1#-e=}")
+ fi
+ shift 1
+ ;;
+ -t | --tag)
+ PACK_ARGS+=("--tag")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ -t=* | --tag=*)
+ if [[ "$1" == "--tag=*" ]]; then
+ PACK_ARGS+=("--tag" "${1#--tag=}")
+ elif [[ "$1" == "-t=*" ]]; then
+ PACK_ARGS+=("--tag" "${1#-t=}")
+ fi
+ shift 1
;;
--volume | -v)
PACK_ARGS+=("--volume")
PACK_ARGS+=("$2")
shift 2
;;
+ --volume=* | -v=*)
+ if [[ "$1" == "--volume=*" ]]; then
+ PACK_ARGS+=("--volume" "${1#--volume=}")
+ elif [[ "$1" == "-v=*" ]]; then
+ PACK_ARGS+=("--volume" "${1#-v=}")
+ fi
+ shift 1
+ ;;
+ --cache)
+ PACK_ARGS+=("--cache")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache=*)
+ PACK_ARGS+=("--cache" "${1#--cache=}")
+ shift 1
+ ;;
+ --cache-image)
+ PACK_ARGS+=("--cache-image")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-image=*)
+ PACK_ARGS+=("--cache-image" "${1#--cache-image=}")
+ shift 1
+ ;;
+ --creation-time)
+ PACK_ARGS+=("--creation-time")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --creation-time=*)
+ PACK_ARGS+=("--creation-time" "${1#--creation-time=}")
+ shift 1
+ ;;
+ --env-file)
+ PACK_ARGS+=("--env-file")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --env-file=*)
+ PACK_ARGS+=("--env-file" "${1#--env-file=}")
+ shift 1
+ ;;
+ --extension)
+ PACK_ARGS+=("--extension")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --extension=*)
+ PACK_ARGS+=("--extension" "${1#--extension=}")
+ shift 1
+ ;;
+ --gid)
+ PACK_ARGS+=("--gid")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --gid=*)
+ PACK_ARGS+=("--gid" "${1#--gid=}")
+ shift 1
+ ;;
+ --insecure-registry)
+ PACK_ARGS+=("--insecure-registry")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --insecure-registry=*)
+ PACK_ARGS+=("--insecure-registry" "${1#--insecure-registry=}")
+ shift 1
+ ;;
+ --lifecycle-image)
+ PACK_ARGS+=("--lifecycle-image")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --lifecycle-image=*)
+ PACK_ARGS+=("--lifecycle-image" "${1#--lifecycle-image=}")
+ shift 1
+ ;;
+ --network)
+ PACK_ARGS+=("--network")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --network=*)
+ PACK_ARGS+=("--network" "${1#--network=}")
+ shift 1
+ ;;
+ --platform)
+ PACK_ARGS+=("--platform")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --platform=*)
+ PACK_ARGS+=("--platform" "${1#--platform=}")
+ shift 1
+ ;;
+ --post-buildpack)
+ PACK_ARGS+=("--post-buildpack")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --post-buildpack=*)
+ PACK_ARGS+=("--post-buildpack" "${1#--post-buildpack=}")
+ shift 1
+ ;;
+ --pre-buildpack)
+ PACK_ARGS+=("--pre-buildpack")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --pre-buildpack=*)
+ PACK_ARGS+=("--pre-buildpack" "${1#--pre-buildpack=}")
+ shift 1
+ ;;
+ --previous-image)
+ PACK_ARGS+=("--previous-image")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --previous-image=*)
+ PACK_ARGS+=("--previous-image" "${1#--previous-image=}")
+ shift 1
+ ;;
+ --pull-policy)
+ PACK_ARGS+=("--pull-policy")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --pull-policy=*)
+ PACK_ARGS+=("--pull-policy" "${1#--pull-policy=}")
+ shift 1
+ ;;
+ --run-image)
+ PACK_ARGS+=("--run-image")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --run-image=*)
+ PACK_ARGS+=("--run-image" "${1#--run-image=}")
+ shift 1
+ ;;
+ --uid)
+ PACK_ARGS+=("--uid")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --uid=*)
+ PACK_ARGS+=("--uid" "${1#--uid=}")
+ shift 1
+ ;;
+ --workspace)
+ PACK_ARGS+=("--workspace")
+ PACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --workspace=*)
+ PACK_ARGS+=("--workspace" "${1#--workspace=}")
+ shift 1
+ ;;
+ --clear-cache | --disable-system-buildpacks | --publish | --trust-builder | --trust-extra-buildpacks | --userns-host)
+ PACK_ARGS+=("$1")
+ shift 1
+ ;;
*)
+ if [[ -n "$1" ]]; then
+ shift
+ continue
+ fi
break
;;
esac
diff --git a/plugins/builder-railpack/builder-build b/plugins/builder-railpack/builder-build
index e0716522d..3b7e7e6df 100755
--- a/plugins/builder-railpack/builder-build
+++ b/plugins/builder-railpack/builder-build
@@ -27,30 +27,106 @@ trigger-builder-railpack-builder-build() {
plugn trigger pre-build "$BUILDER_TYPE" "$APP" "$SOURCECODE_WORK_DIR"
- no_cache="$(fn-builder-railpack-computed-no-cache "$APP")"
- RAILPACK_ARGS=""
- if [[ "$no_cache" == "true" ]]; then
- RAILPACK_ARGS="$RAILPACK_ARGS --no-cache"
- fi
-
- local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
- DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
-
- # strip --link, --volume and -v args from DOCKER_ARGS
- local DOCKER_ARGS=$(sed -e "s/^--link=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--link[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^--volume[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" -e "s/^-v[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS")
- declare -a ARG_ARRAY
- eval "ARG_ARRAY=($DOCKER_ARGS)"
-
- eval "$(config_export app "$APP" --merged)"
-
if [[ -f "$SOURCECODE_WORK_DIR/Procfile" ]]; then
if procfile-util exists --process-type release; then
procfile-util delete --process-type release
fi
fi
+ local DOCKER_ARGS=$(: | plugn trigger docker-args-build "$APP" "$BUILDER_TYPE")
+ DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE")
+
+ DOCKER_ARGS=" $DOCKER_ARGS "
+ eval set -- "$DOCKER_ARGS"
+
+ declare -a RAILPACK_ARGS
+ while true; do
+ case "$1" in
+ --platform)
+ RAILPACK_ARGS+=("--platform")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --platform=*)
+ RAILPACK_ARGS+=("--platform" "${1#--platform=}")
+ shift 1
+ ;;
+ --progress)
+ RAILPACK_ARGS+=("--progress")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --progress=*)
+ RAILPACK_ARGS+=("--progress" "${1#--progress=}")
+ shift 1
+ ;;
+ --cache-key)
+ RAILPACK_ARGS+=("--cache-key")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --cache-key=*)
+ RAILPACK_ARGS+=("--cache-key" "${1#--cache-key=}")
+ shift 1
+ ;;
+ -e | --env)
+ RAILPACK_ARGS+=("--env")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ -e=* | --env=*)
+ if [[ "$1" == "--env=*" ]]; then
+ RAILPACK_ARGS+=("--env" "${1#--env=}")
+ elif [[ "$1" == "--e=*" ]]; then
+ RAILPACK_ARGS+=("--env" "${1#-e=}")
+ fi
+ shift 1
+ ;;
+ --previous)
+ RAILPACK_ARGS+=("--previous")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --previous=*)
+ RAILPACK_ARGS+=("--previous" "${1#--previous=}")
+ shift 1
+ ;;
+ --build-cmd)
+ RAILPACK_ARGS+=("--build-cmd")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --build-cmd=*)
+ RAILPACK_ARGS+=("--build-cmd" "${1#--build-cmd=}")
+ shift 1
+ ;;
+ --start-cmd)
+ RAILPACK_ARGS+=("--start-cmd")
+ RAILPACK_ARGS+=("$2")
+ shift 2
+ ;;
+ --start-cmd=*)
+ RAILPACK_ARGS+=("--start-cmd" "${1#--start-cmd=}")
+ shift 1
+ ;;
+ ---show-plan | --error-missing-start)
+ RAILPACK_ARGS+=("$1")
+ shift 1
+ ;;
+ *)
+ if [[ -n "$1" ]]; then
+ shift
+ continue
+ fi
+ break
+ ;;
+ esac
+ done
+
+ eval "$(config_export app "$APP" --merged)"
+
# shellcheck disable=SC2086
- if ! railpack build "${ARG_ARRAY[@]}" $RAILPACK_ARGS --name "$IMAGE-build" "$SOURCECODE_WORK_DIR"; then
+ if ! railpack build "${RAILPACK_ARGS[@]}" --name "$IMAGE-build" "$SOURCECODE_WORK_DIR"; then
dokku_log_warn "Failure building image"
return 1
fi
diff --git a/plugins/builder-railpack/internal-functions b/plugins/builder-railpack/internal-functions
index a405b2ed0..96dab71bc 100755
--- a/plugins/builder-railpack/internal-functions
+++ b/plugins/builder-railpack/internal-functions
@@ -38,9 +38,6 @@ cmd-builder-railpack-report-single() {
"--builder-railpack-computed-railpackjson-path: $(fn-builder-railpack-computed-railpackjson-path "$APP")"
"--builder-railpack-global-railpackjson-path: $(fn-builder-railpack-global-railpackjson-path "$APP")"
"--builder-railpack-railpackjson-path: $(fn-builder-railpack-railpackjson-path "$APP")"
- "--builder-railpack-computed-no-cache: $(fn-builder-railpack-computed-no-cache "$APP")"
- "--builder-railpack-global-no-cache: $(fn-builder-railpack-global-no-cache "$APP")"
- "--builder-railpack-no-cache: $(fn-builder-railpack-no-cache "$APP")"
)
if [[ -z "$INFO_FLAG" ]]; then
@@ -91,26 +88,3 @@ fn-builder-railpack-railpackjson-path() {
fn-plugin-property-get "builder-railpack" "$APP" "railpackjson-path" ""
}
-
-fn-builder-railpack-computed-no-cache() {
- declare APP="$1"
-
- file="$(fn-builder-railpack-no-cache "$APP")"
- if [[ "$file" == "" ]]; then
- file="$(fn-builder-railpack-global-no-cache "$APP")"
- fi
-
- echo "$file"
-}
-
-fn-builder-railpack-global-no-cache() {
- declare APP="$1"
-
- fn-plugin-property-get "builder-railpack" "--global" "no-cache" "false"
-}
-
-fn-builder-railpack-no-cache() {
- declare APP="$1"
-
- fn-plugin-property-get "builder-railpack" "$APP" "no-cache" ""
-}
diff --git a/plugins/builder-railpack/subcommands/set b/plugins/builder-railpack/subcommands/set
index 6001f0c6f..3ac35030d 100755
--- a/plugins/builder-railpack/subcommands/set
+++ b/plugins/builder-railpack/subcommands/set
@@ -9,13 +9,13 @@ cmd-builder-railpack-set() {
declare cmd="builder-railpack:set"
[[ "$1" == "$cmd" ]] && shift 1
declare APP="$1" KEY="$2" VALUE="$3"
- local VALID_KEYS=("railpackjson-path" "no-cache")
+ local VALID_KEYS=("railpackjson-path")
[[ "$APP" == "--global" ]] || verify_app_name "$APP"
[[ -z "$KEY" ]] && dokku_log_fail "No key specified"
if ! fn-in-array "$KEY" "${VALID_KEYS[@]}"; then
- dokku_log_fail "Invalid key specified, valid keys include: railpackjson-path, no-cache"
+ dokku_log_fail "Invalid key specified, valid keys include: railpackjson-path"
fi
if [[ -n "$VALUE" ]]; then
diff --git a/tests/test_deploy b/tests/test_deploy
index 01ecbda18..651e16098 100755
--- a/tests/test_deploy
+++ b/tests/test_deploy
@@ -45,10 +45,11 @@ git add .
[[ -x pre-commit ]] && ./pre-commit "$REMOTE" "$REPO"
git commit -m 'initial commit'
+current_branch="$(git rev-parse --abbrev-ref HEAD)"
if [[ "$SHOULD_FAIL" == true ]]; then
- git push target "master:$BRANCH" && succeeded git-push
+ git push target "$current_branch:$BRANCH" && succeeded git-push
else
- git push target "master:$BRANCH" || failed git-push
+ git push target "$current_branch:$BRANCH" || failed git-push
fi
if [[ -x post-deploy ]]; then
./post-deploy "$REMOTE" "$REPO" || failed post-deploy
diff --git a/tests/unit/config.bats b/tests/unit/config.bats
index 1825feb12..e9bfb1fce 100644
--- a/tests/unit/config.bats
+++ b/tests/unit/config.bats
@@ -486,10 +486,15 @@ teardown() {
@test "(config) global config (dockerfile)" {
run deploy_app dockerfile
- run /bin/bash -c "dokku run $TEST_APP env | grep -E '^global_test=true'"
echo "output: $output"
echo "status: $status"
assert_success
+
+ run /bin/bash -c "dokku run $TEST_APP env"
+ echo "output: $output"
+ echo "status: $status"
+ assert_success
+ assert_output_contains "global_test=true"
}
@test "(config) config:show" {