这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/deployment/builders/dockerfiles.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,10 @@ Dockerfile2

For security reasons - and as per [Docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available only during runtime.

For users that require customization in the `build` phase, you may use build arguments via the [docker-options plugin](/docs/advanced-usage/docker-options.md):
For users that require customization in the `build` phase, you may use build arguments via the [docker-options plugin](/docs/advanced-usage/docker-options.md). All environment variables set by the `config` plugin are automatically exported during a docker build, and thus `--build-arg` only requires setting a key without a value.

```shell
dokku docker-options:add node-js-app build '--build-arg NODE_ENV=production'
dokku docker-options:add node-js-app build '--build-arg NODE_ENV'
```

Once set, the Dockerfile usage would be as follows:
Expand Down
1 change: 1 addition & 0 deletions plugins/builder-dockerfile/builder-build
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ trigger-builder-dockerfile-builder-build() {
declare -a ARG_ARRAY
eval "ARG_ARRAY=($DOCKER_ARGS)"

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 .

plugn trigger post-build-dockerfile "$APP"
Expand Down
18 changes: 18 additions & 0 deletions tests/unit/builder-dockerfile.bats
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,21 @@ teardown() {
assert_success
assert_output_contains 'echo hi' 0
}

@test "(builder-dockerfile) config export" {
run /bin/bash -c "dokku config:set $TEST_APP GITHUB_TOKEN=custom-value"
echo "output: $output"
echo "status: $status"
assert_success

run /bin/bash -c "dokku docker-options:add $TEST_APP build '--build-arg GITHUB_TOKEN'"
echo "output: $output"
echo "status: $status"
assert_success

run deploy_app dockerfile
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "TOKEN is: custom-value"
}