refactor: fix handling of string andd array CMD and ENTRYPOINT values

Previous versions extracted the values as strings, prefixing the values with `/bin/sh -c '$CMD'` unnecessarily. This caused issues where we would incorrectly overrride these values when an app had a predeploy script.

Closes #3143
This commit is contained in:
Jose Diaz-Gonzalez
2020-08-31 02:31:36 -04:00
parent 7ca4cba8ec
commit 53dabf7fd0
10 changed files with 107 additions and 22 deletions

View File

@@ -18,6 +18,12 @@ teardown() {
echo "status: $status"
assert_success
run docker inspect "${TEST_APP}.web.1" --format "{{json .Config.Cmd}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output '["/start","web"]'
run /bin/bash -c "dokku --rm run $TEST_APP ls /app/prebuild.test"
echo "output: $output"
echo "status: $status"
@@ -37,10 +43,47 @@ teardown() {
assert_success
}
@test "(app-json) app.json scripts missing" {
deploy_app nodejs-express-noappjson
echo "output: $output"
echo "status: $status"
assert_success
}
@test "(app-json) app.json dockerfile cmd" {
deploy_app dockerfile-procfile
echo "output: $output"
echo "status: $status"
assert_success
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Cmd}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output '["/bin/sh","-c","npm start"]'
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Entrypoint}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output 'null'
}
@test "(app-json) app.json dockerfile entrypoint" {
deploy_app dockerfile-entrypoint
echo "output: $output"
echo "status: $status"
assert_success
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Cmd}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output 'null'
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Entrypoint}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output '["./entrypoint"]'
}