diff --git a/plugins/builder-dockerfile/builder-build b/plugins/builder-dockerfile/builder-build index dce61d6bb..5677fdaed 100755 --- a/plugins/builder-dockerfile/builder-build +++ b/plugins/builder-dockerfile/builder-build @@ -29,7 +29,7 @@ trigger-builder-dockerfile-builder-build() { DOCKER_ARGS+=$(: | plugn trigger docker-args-process-build "$APP" "$BUILDER_TYPE") # strip --volume and -v args from DOCKER_ARGS - local DOCKER_ARGS=$(sed -e "s/--volume=[[:graph:]]\+[[:blank:]]\?//g" -e "s/-v[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS") + local DOCKER_ARGS=$(sed -e "s/^--volume=[[:graph:]]\+[[:blank:]]\?//g" -e "s/^-v[[:blank:]]\?[[:graph:]]\+[[:blank:]]\?//g" <<<"$DOCKER_ARGS") declare -a ARG_ARRAY eval "ARG_ARRAY=($DOCKER_ARGS)" diff --git a/tests/unit/docker-options.bats b/tests/unit/docker-options.bats index 4ac48686a..bfeecfe84 100644 --- a/tests/unit/docker-options.bats +++ b/tests/unit/docker-options.bats @@ -259,7 +259,7 @@ teardown() { assert_output_contains "-v /tmp" 2 } -@test "(docker-options) deploy with options" { +@test "(docker-options) deploy with options [buildpacks]" { run /bin/bash -c "dokku docker-options:add $TEST_APP deploy \"-v /var/tmp\"" echo "output: $output" echo "status: $status" @@ -277,7 +277,53 @@ teardown() { echo "status: $status" assert_success assert_output_contains "-v /tmp" 1 - deploy_app + + run deploy_app + echo "output: $output" + echo "status: $status" + assert_success + + CID=$(< $DOKKU_ROOT/$TEST_APP/CONTAINER.web.1) + run /bin/bash -c "docker inspect -f '{{ .Config.Volumes }}' $CID | sed -e 's:map::g' | tr -d '[]' | tr ' ' $'\n' | sort | xargs" + echo "output: $output" + echo "status: $status" + assert_output "/tmp:{} /var/tmp:{}" +} + +@test "(docker-options) deploy with options [dockerfile]" { + run /bin/bash -c "dokku docker-options:add $TEST_APP deploy \"-v /var/tmp\"" + echo "output: $output" + echo "status: $status" + assert_success + run /bin/bash -c "echo '-v /tmp' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY" + echo "output: $output" + echo "status: $status" + assert_success + run /bin/bash -c "echo '# comment' >> $DOKKU_ROOT/$TEST_APP/DOCKER_OPTIONS_DEPLOY" + echo "output: $output" + echo "status: $status" + assert_success + run /bin/bash -c "dokku docker-options:report $TEST_APP" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "-v /tmp" 1 + + run /bin/bash -c "dokku docker-options:add $TEST_APP build --build-arg PAYPAL_CLIENT_ID=abc-v123" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku docker-options:add $TEST_APP build --build-arg PAYPAL_CLIENT_MODE=sandbox" + echo "output: $output" + echo "status: $status" + assert_success + + run deploy_app dockerfile + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "One or more build-args \[PAYPAL_CLIENT_ID PAYPAL_CLIENT_MODE\] were not consumed" CID=$(< $DOKKU_ROOT/$TEST_APP/CONTAINER.web.1) run /bin/bash -c "docker inspect -f '{{ .Config.Volumes }}' $CID | sed -e 's:map::g' | tr -d '[]' | tr ' ' $'\n' | sort | xargs"