Merge pull request #7074 from dokku/6994-upgrade-cnb-builder
Upgrade cnb builder to heroku/builder:24
This commit is contained in:
@@ -147,7 +147,7 @@ project2.toml
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> New as of 0.23.0
|
> New as of 0.23.0
|
||||||
|
|
||||||
The default stack builder in use by CNB buildpacks in Dokku is based on `heroku/builder:22`. Users may desire to switch the stack builder to a custom version, either to update the operating system or to customize packages included with the stack builder. This can be performed via the `buildpacks:set-property` command.
|
The default stack builder in use by CNB buildpacks in Dokku is based on `heroku/builder:24`. Users may desire to switch the stack builder to a custom version, either to update the operating system or to customize packages included with the stack builder. This can be performed via the `buildpacks:set-property` command.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dokku buildpacks:set-property node-js-app stack paketobuildpacks/build:base-cnb
|
dokku buildpacks:set-property node-js-app stack paketobuildpacks/build:base-cnb
|
||||||
@@ -161,7 +161,7 @@ dokku buildpacks:set-property node-js-app stack
|
|||||||
|
|
||||||
A change in the stack builder value will execute the `post-stack-set` trigger.
|
A change in the stack builder value will execute the `post-stack-set` trigger.
|
||||||
|
|
||||||
Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_CNB_BUILDER` environment variable (`heroku/builder:22` by default).
|
Finally, stack builders can be set or unset globally as a fallback. This will take precedence over a globally set `DOKKU_CNB_BUILDER` environment variable (`heroku/builder:24` by default).
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# set globally
|
# set globally
|
||||||
|
|||||||
2
dokku
2
dokku
@@ -40,7 +40,7 @@ DOKKU_DISTRO=$(
|
|||||||
export DOCKER_BIN=${DOCKER_BIN:="docker"}
|
export DOCKER_BIN=${DOCKER_BIN:="docker"}
|
||||||
|
|
||||||
export DOKKU_IMAGE=${DOKKU_IMAGE:="gliderlabs/herokuish:latest-24"}
|
export DOKKU_IMAGE=${DOKKU_IMAGE:="gliderlabs/herokuish:latest-24"}
|
||||||
export DOKKU_CNB_BUILDER=${DOKKU_CNB_BUILDER:="heroku/builder:22"}
|
export DOKKU_CNB_BUILDER=${DOKKU_CNB_BUILDER:="heroku/builder:24"}
|
||||||
export DOKKU_LIB_ROOT=${DOKKU_LIB_PATH:="/var/lib/dokku"}
|
export DOKKU_LIB_ROOT=${DOKKU_LIB_PATH:="/var/lib/dokku"}
|
||||||
|
|
||||||
export PLUGIN_PATH=${PLUGIN_PATH:="$DOKKU_LIB_ROOT/plugins"}
|
export PLUGIN_PATH=${PLUGIN_PATH:="$DOKKU_LIB_ROOT/plugins"}
|
||||||
|
|||||||
21
tests/apps/python/app-cnb.json
Normal file
21
tests/apps/python/app-cnb.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"healthchecks": {
|
||||||
|
"web": [
|
||||||
|
{
|
||||||
|
"attempts": 2,
|
||||||
|
"content": "python/http.server",
|
||||||
|
"name": "check-1",
|
||||||
|
"path": "/",
|
||||||
|
"timeout": 5,
|
||||||
|
"type": "startup",
|
||||||
|
"wait": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"dokku": {
|
||||||
|
"postdeploy": "touch /workspace/postdeploy.test",
|
||||||
|
"predeploy": "touch /workspace/predeploy.test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,8 @@ uri = "./cnb/1"
|
|||||||
[[build.buildpacks]]
|
[[build.buildpacks]]
|
||||||
uri = "./cnb/1"
|
uri = "./cnb/1"
|
||||||
|
|
||||||
|
[[build.buildpacks]]
|
||||||
|
uri = "gcr.io/paketo-buildpacks/python"
|
||||||
|
|
||||||
[[order.group]]
|
[[order.group]]
|
||||||
uri = "gcr.io/paketo-buildpacks/procfile"
|
uri = "gcr.io/paketo-buildpacks/procfile"
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ import os
|
|||||||
def main():
|
def main():
|
||||||
print("GLOBAL_SECRET: {0}".format(os.getenv('GLOBAL_SECRET')))
|
print("GLOBAL_SECRET: {0}".format(os.getenv('GLOBAL_SECRET')))
|
||||||
print("SECRET_KEY: {0}".format(os.getenv('SECRET_KEY')))
|
print("SECRET_KEY: {0}".format(os.getenv('SECRET_KEY')))
|
||||||
with open("/app/.env", "r") as f:
|
app_dir = os.getcwd()
|
||||||
|
with open(f"{app_dir}/.env", "r") as f:
|
||||||
for line in f.readlines():
|
for line in f.readlines():
|
||||||
if "DOTENV_KEY" in line:
|
if "DOTENV_KEY" in line:
|
||||||
print(line)
|
print(line)
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ teardown() {
|
|||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
run /bin/bash -c "dokku buildpacks:set-property $TEST_APP stack heroku/builder:22"
|
run /bin/bash -c "dokku buildpacks:set-property $TEST_APP stack heroku/builder:24"
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP inject_requirements_txt
|
run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP initialize_for_cnb
|
||||||
echo "output: $output"
|
echo "output: $output"
|
||||||
echo "status: $status"
|
echo "status: $status"
|
||||||
assert_success
|
assert_success
|
||||||
@@ -81,9 +81,10 @@ teardown() {
|
|||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
inject_requirements_txt() {
|
initialize_for_cnb() {
|
||||||
local APP="$1"
|
local APP="$1"
|
||||||
local APP_REPO_DIR="$2"
|
local APP_REPO_DIR="$2"
|
||||||
[[ -z "$APP" ]] && local APP="$TEST_APP"
|
[[ -z "$APP" ]] && local APP="$TEST_APP"
|
||||||
echo "flask" >>"$APP_REPO_DIR/requirements.txt"
|
echo "flask" >>"$APP_REPO_DIR/requirements.txt"
|
||||||
|
mv "$APP_REPO_DIR/app-cnb.json" "$APP_REPO_DIR/app.json"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user