diff --git a/.devcontainer/bin/deploy-test-app b/.devcontainer/bin/deploy-test-app new file mode 100755 index 000000000..2a1b2ab79 --- /dev/null +++ b/.devcontainer/bin/deploy-test-app @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +main() { + declare APP="${1:-test}" + + if ! dokku apps:exists $APP; then + dokku apps:create $APP + fi + + dokku builder-herokuish:set $APP allowed true + dokku git:sync --build $APP https://github.com/dokku/smoke-test-app.git +} + +main "$@" diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ff939e1c5..5961e8dee 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -141,6 +141,41 @@ updates: open-pull-requests-limit: 2 labels: - "type: dependencies" + - package-ecosystem: "docker" + directory: "/plugins/caddy-vhosts" + schedule: + interval: daily + open-pull-requests-limit: 10 + labels: + - "type: dependencies" + - package-ecosystem: "docker" + directory: "/plugins/haproxy-vhosts" + schedule: + interval: daily + open-pull-requests-limit: 10 + labels: + - "type: dependencies" + - package-ecosystem: "docker" + directory: "/plugins/logs" + schedule: + interval: daily + open-pull-requests-limit: 10 + labels: + - "type: dependencies" + - package-ecosystem: "docker" + directory: "/plugins/openresty-vhosts" + schedule: + interval: daily + open-pull-requests-limit: 10 + labels: + - "type: dependencies" + - package-ecosystem: "docker" + directory: "/plugins/traefik-vhosts" + schedule: + interval: daily + open-pull-requests-limit: 10 + labels: + - "type: dependencies" - package-ecosystem: bundler directory: "/tests/apps/ruby" schedule: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9753d5947..b90843574 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -58,7 +58,7 @@ jobs: PACKER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get changed files in the docs folder id: changed-files-specific - uses: tj-actions/changed-files@v42.0.2 + uses: tj-actions/changed-files@v42.0.4 with: files: contrib/images/digitalocean/** - name: Run `packer validate` diff --git a/HISTORY.md b/HISTORY.md index c6d64a728..741266823 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,77 @@ # History +## 0.33.7 + +Install/update via the bootstrap script: + +```shell +wget -NP . https://dokku.com/install/v0.33.7/bootstrap.sh +sudo DOKKU_TAG=v0.33.7 bash bootstrap.sh +``` + +### Bug Fixes + +- #6608: @josegonzalez Fix issue with setting k3s resource values and lower the initial default values +- #6607: @josegonzalez Call sed in unbuffered form to ensure log output is streamed to stdout +- #6600: @josegonzalez Use correct label key for worker nodes +- #6593: @josegonzalez Remove extra trailing newline to fix govet issue + +### New Features + +- #6595: @josegonzalez Add ability for users to specify alternative kubeconfig and kubecontext + +### Refactors + +- #6594: @josegonzalez Remove all calls to common.NewShellCmd +- #6592: @josegonzalez Remove all calls to common.NewShellCmdWithArgs +- #6591: @josegonzalez Always capture stdout/stderr when executing subprocesses +- #6590: @josegonzalez Remove all direct usage of go-sh outside of plugin trigger setup + +### Dependencies + +- #6609: @dependabot[bot] chore(deps): bump google.golang.org/grpc from 1.61.1 to 1.62.0 in /tests/apps/gogrpc +- #6604: @dependabot[bot] chore(deps): bump mkdocs-material from 9.5.9 to 9.5.10 in /docs/_build +- #6603: @dependabot[bot] chore(deps): bump tj-actions/changed-files from 42.0.2 to 42.0.4 +- #6601: @dependabot[bot] chore(deps): bump helm.sh/helm/v3 from 3.13.3 to 3.14.1 in /plugins/scheduler-k3s +- #6596: @dependabot[bot] chore(deps): bump google.golang.org/grpc from 1.61.0 to 1.61.1 in /tests/apps/gogrpc + +## 0.33.6 + +Install/update via the bootstrap script: + +```shell +wget -NP . https://dokku.com/install/v0.33.6/bootstrap.sh +sudo DOKKU_TAG=v0.33.6 bash bootstrap.sh +``` + +### Bug Fixes + +- #6589: @josegonzalez Use image pull secrets instead of registries.yaml to reference private repositories when deploying via k3s +- #6581: @josegonzalez Fix issues in tls handling when deploying via k3s +- #6582: @josegonzalez Correctly handle extra whitespace in scale file contents +- #6390: @renweibo Prefer systemctl over sv when both exist while restarting nginx +- #6579: @josegonzalez Ensure k3s can be installed with taints + +### New Features + +- #6585: @josegonzalez Add more context to errors in fetching cron entries +- #6583: @josegonzalez Add WithContext functions for all subprocess-related code + +### Refactors + +- #6584: @josegonzalez Use new CallExecCommand when checking to see how help is being called + +### Dependencies + +- #6586: @dependabot[bot] chore(deps): bump mvdan.cc/sh/v3 from 3.7.0 to 3.8.0 in /plugins/cron +- #6587: @dependabot[bot] chore(deps): bump mkdocs-material from 9.5.8 to 9.5.9 in /docs/_build +- #6381: @dependabot[bot] chore(deps): bump actions/upload-artifact from 3 to 4 +- #6578: @josegonzalez Bump go modules + +### Other + +- #6576: @Tashows Allow creating a detached container with TTY enabled for attaching remote terminal + ## 0.33.5 Install/update via the bootstrap script: diff --git a/README.md b/README.md index 7b4c43726..410e14143 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,8 @@ Otherwise, you will need to import the keypair manually after installation using To install the latest stable release, run the following commands as a user who has access to `sudo`: ```shell -wget -NP . https://dokku.com/install/v0.33.5/bootstrap.sh -sudo DOKKU_TAG=v0.33.5 bash bootstrap.sh +wget -NP . https://dokku.com/install/v0.33.7/bootstrap.sh +sudo DOKKU_TAG=v0.33.7 bash bootstrap.sh ``` You can then proceed to configure your server domain (via `dokku domains:set-global`) and user access (via `dokku ssh-keys:add`) to complete the installation. diff --git a/Vagrantfile b/Vagrantfile index 3cd1c44d7..eb55a3787 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -53,7 +53,7 @@ Vagrant::configure("2") do |config| vb.customize ["modifyvm", :id, "--cableconnected1", "on"] end - vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq >/dev/null && apt-get -qq -y --no-install-recommends install git build-essential >/dev/null && cd /root/dokku && #{make_cmd}" + vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq >/dev/null && apt-get -qq -y --no-install-recommends install git build-essential jq >/dev/null && cd /root/dokku && #{make_cmd}" vm.vm.provision :shell do |s| s.inline = <<-EOT echo '"\e[5~": history-search-backward' > /root/.inputrc diff --git a/debian/control b/debian/control index 6741050b8..6f2f29170 100644 --- a/debian/control +++ b/debian/control @@ -1,9 +1,9 @@ Package: dokku -Version: 0.33.5 +Version: 0.33.7 Section: web Priority: optional Architecture: amd64 -Depends: apache2-utils, acl, locales, git, cpio, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, software-properties-common, parallel, procfile-util, python-software-properties | python3-software-properties, rsync, rsyslog, dos2unix, jq, unzip, util-linux +Depends: apache2-utils, locales, git, cpio, curl, man-db, netcat, sshcommand, docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-buildx-plugin | moby-buildx, docker-container-healthchecker, docker-image-labeler, lambda-builder, net-tools, netrc, software-properties-common, parallel, procfile-util, python-software-properties | python3-software-properties, rsync, rsyslog, dos2unix, jq, unzip, util-linux Recommends: herokuish, bash-completion, dokku-update, dokku-event-listener Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, dnsutils, cgroupfs-mount | cgroup-lite, plugn, sudo, python3, debconf Maintainer: Jose Diaz-Gonzalez diff --git a/docs/_build/requirements.txt b/docs/_build/requirements.txt index eac3b515b..6b29067e7 100644 --- a/docs/_build/requirements.txt +++ b/docs/_build/requirements.txt @@ -8,7 +8,7 @@ MarkupSafe==2.1.5 mergedeep==1.3.4 mkdocs==1.5.3 mkdocs-exclude==1.0.2 -mkdocs-material==9.5.8 +mkdocs-material==9.5.11 mkdocs-material-extensions==1.3.1 packaging==23.2 Pygments==2.17.2 diff --git a/docs/advanced-usage/plugin-management.md b/docs/advanced-usage/plugin-management.md index 99871ac4a..eb832b635 100644 --- a/docs/advanced-usage/plugin-management.md +++ b/docs/advanced-usage/plugin-management.md @@ -36,35 +36,35 @@ dokku plugin:list ``` plugn: dev - 00_dokku-standard 0.33.5 enabled dokku core standard plugin - 20_events 0.33.5 enabled dokku core events logging plugin - app-json 0.33.5 enabled dokku core app-json plugin - apps 0.33.5 enabled dokku core apps plugin - build-env 0.33.5 enabled dokku core build-env plugin - buildpacks 0.33.5 enabled dokku core buildpacks plugin - certs 0.33.5 enabled dokku core certificate management plugin - checks 0.33.5 enabled dokku core checks plugin - common 0.33.5 enabled dokku core common plugin - config 0.33.5 enabled dokku core config plugin - docker-options 0.33.5 enabled dokku core docker-options plugin - domains 0.33.5 enabled dokku core domains plugin - enter 0.33.5 enabled dokku core enter plugin - git 0.33.5 enabled dokku core git plugin - logs 0.33.5 enabled dokku core logs plugin - network 0.33.5 enabled dokku core network plugin - nginx-vhosts 0.33.5 enabled dokku core nginx-vhosts plugin - plugin 0.33.5 enabled dokku core plugin plugin - proxy 0.33.5 enabled dokku core proxy plugin - ps 0.33.5 enabled dokku core ps plugin - repo 0.33.5 enabled dokku core repo plugin - resource 0.33.5 enabled dokku core resource plugin - scheduler-docker-local 0.33.5 enabled dokku core scheduler-docker-local plugin - shell 0.33.5 enabled dokku core shell plugin - ssh-keys 0.33.5 enabled dokku core ssh-keys plugin - storage 0.33.5 enabled dokku core storage plugin - tags 0.33.5 enabled dokku core tags plugin - tar 0.33.5 enabled dokku core tar plugin - trace 0.33.5 enabled dokku core trace plugin + 00_dokku-standard 0.33.7 enabled dokku core standard plugin + 20_events 0.33.7 enabled dokku core events logging plugin + app-json 0.33.7 enabled dokku core app-json plugin + apps 0.33.7 enabled dokku core apps plugin + build-env 0.33.7 enabled dokku core build-env plugin + buildpacks 0.33.7 enabled dokku core buildpacks plugin + certs 0.33.7 enabled dokku core certificate management plugin + checks 0.33.7 enabled dokku core checks plugin + common 0.33.7 enabled dokku core common plugin + config 0.33.7 enabled dokku core config plugin + docker-options 0.33.7 enabled dokku core docker-options plugin + domains 0.33.7 enabled dokku core domains plugin + enter 0.33.7 enabled dokku core enter plugin + git 0.33.7 enabled dokku core git plugin + logs 0.33.7 enabled dokku core logs plugin + network 0.33.7 enabled dokku core network plugin + nginx-vhosts 0.33.7 enabled dokku core nginx-vhosts plugin + plugin 0.33.7 enabled dokku core plugin plugin + proxy 0.33.7 enabled dokku core proxy plugin + ps 0.33.7 enabled dokku core ps plugin + repo 0.33.7 enabled dokku core repo plugin + resource 0.33.7 enabled dokku core resource plugin + scheduler-docker-local 0.33.7 enabled dokku core scheduler-docker-local plugin + shell 0.33.7 enabled dokku core shell plugin + ssh-keys 0.33.7 enabled dokku core ssh-keys plugin + storage 0.33.7 enabled dokku core storage plugin + tags 0.33.7 enabled dokku core tags plugin + tar 0.33.7 enabled dokku core tar plugin + trace 0.33.7 enabled dokku core trace plugin ``` > [!WARNING] diff --git a/docs/assets/favicons/browserconfig.xml b/docs/assets/favicons/browserconfig.xml index 30d9aaa13..07e91443b 100644 --- a/docs/assets/favicons/browserconfig.xml +++ b/docs/assets/favicons/browserconfig.xml @@ -2,10 +2,10 @@ - - - - + + + + #da532c diff --git a/docs/assets/favicons/manifest.json b/docs/assets/favicons/manifest.json index 8f5c43d5b..0e141c525 100644 --- a/docs/assets/favicons/manifest.json +++ b/docs/assets/favicons/manifest.json @@ -2,37 +2,37 @@ "name": "Dokku", "icons": [ { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-36x36.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-36x36.png", "sizes": "36x36", "type": "image\/png", "density": "0.75" }, { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-48x48.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-48x48.png", "sizes": "48x48", "type": "image\/png", "density": "1.0" }, { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-72x72.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-72x72.png", "sizes": "72x72", "type": "image\/png", "density": "1.5" }, { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-96x96.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-96x96.png", "sizes": "96x96", "type": "image\/png", "density": "2.0" }, { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-144x144.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-144x144.png", "sizes": "144x144", "type": "image\/png", "density": "3.0" }, { - "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.5\/docs\/assets\/favicons\/android-chrome-192x192.png", + "src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.33.7\/docs\/assets\/favicons\/android-chrome-192x192.png", "sizes": "192x192", "type": "image\/png", "density": "4.0" diff --git a/docs/assets/versions.json b/docs/assets/versions.json index ee3ac373c..68b608571 100644 --- a/docs/assets/versions.json +++ b/docs/assets/versions.json @@ -30,6 +30,6 @@ "0.30.11", "0.31.5", "0.32.4", - "0.33.5" + "0.33.7" ] } diff --git a/docs/deployment/schedulers/k3s.md b/docs/deployment/schedulers/k3s.md index 540bd157d..a85c189a6 100644 --- a/docs/deployment/schedulers/k3s.md +++ b/docs/deployment/schedulers/k3s.md @@ -219,7 +219,7 @@ The default value may be set by passing an empty value for the option: dokku scheduler-k3s:set node-js-app image-pull-secrets ``` -The `image-pull-secrets` property can also be set globally. The global default is empty string, and k3s will use the local `registries.yaml` for any private registry pulls. +The `image-pull-secrets` property can also be set globally. The global default is empty string, and k3s will use Dokku's locally configured `~/.docker/config.json` for any private registry pulls. ```shell dokku scheduler-k3s:set --global image-pull-secrets 60s @@ -243,7 +243,7 @@ dokku scheduler-k3s:set --global letsencrypt-email-prod automated@dokku.sh dokku scheduler-k3s:set --global letsencrypt-email-stag automated@dokku.sh ``` -After enabling and rebuilding, all apps with an `https` port mapping that utilize the related letsencrypt server will be automatically updated to enable ssl. All http requests will then be redirected to https. +After enabling and rebuilding, all apps with an `http:80` port mapping will have a corresponding `https:443` added and ssl will be automatically enabled. All http requests will then be redirected to https. ### Customizing the letsencrypt server @@ -320,6 +320,38 @@ By default, Dokku assumes that all it controls all actions on the cluster, and t dokku scheduler-k3s:show-kubeconfig ``` +### Interacting with an external Kubernetes cluster + +While the k3s scheduler plugin is designed to work with a Dokku-managed k3s cluster, Dokku can be configured to interact with any Kubernetes cluster by setting the global `kubeconfig-path` to a path to a custom kubeconfig on the Dokku server. This property is only available at a global level. + +```shell +dokku scheduler-k3s:set --global kubeconfig-path /path/to/custom/kubeconfig +``` + +To set the default value, omit the value from the `scheduler-k3s:set` call: + +```shell +dokku scheduler-k3s:set --global kubeconfig-path +``` + +The default value for the `kubeconfig-path` is the k3s kubeconfig located at `/etc/rancher/k3s/k3s.yaml`. + +### Customizing the Kubernetes context + +When interacting with a custom Kubeconfig, the `kube-context` property can be set to specify a specific context within the kubeconfig to use. This property is available only at the global leve. + +```shell +dokku scheduler-k3s:set --global kube-context lollipop +``` + +To set the default value, omit the value from the `scheduler-k3s:set` call: + +```shell +dokku scheduler-k3s:set --global kube-context +``` + +The default value for the `kube-context` is an empty string, and will result in Dokku using the current context within the kubeconfig. + ## Scheduler Interface The following sections describe implemented and unimplemented scheduler functionality for the `k3s` scheduler. @@ -361,20 +393,12 @@ App logs for the `logs` command are fetched by Dokku from running containers via ### Supported Resource Management Properties -The `k3s` scheduler supports a minimal list of resource _limits_ and _reservations_. The following properties are supported: - -#### Resource Limits - -> [!NOTE] -> Cron tasks retrieve resource limits based on the computed cron task ID. If unspecified, the default will be 1 CPU and 512m RAM. +The `k3s` scheduler supports a minimal list of resource _limits_ and _reservations_: - cpu: is specified in number of CPUs a process can access. -- memory: should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes). Default unit is `m` (megabytes). +- memory: should be specified with a suffix of `b` (bytes), `Ki` (kilobytes), `Mi` (megabytes), `Gi` (gigabytes). Default unit is `Mi` (megabytes). -#### Resource Reservations +If unspecified for any task, the default reservation will be `.1` CPU and `128Mi` RAM, with no limit set for either CPU or RAM. This is to avoid issues with overscheduling pods on a cluster. To avoid issues, set more specific values for at least resource reservations. If unbounded utilization is desired, set CPU and Memory to `0m` and `0Mi`, respectively. > [!NOTE] -> Cron tasks retrieve resource reservations based on the computed cron task ID. If unspecified, the default will be 1 CPU and 512m RAM. - -- cpu: is specified in number of CPUs a process can access. -- memory: should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes). Default unit is `m` (megabytes). +> Cron tasks retrieve resource limits based on the computed cron task ID. diff --git a/docs/development/release-process.md b/docs/development/release-process.md index ad7356b43..c8a876562 100644 --- a/docs/development/release-process.md +++ b/docs/development/release-process.md @@ -29,7 +29,7 @@ The workflow looks like this: ```shell # having dokku-arch in ../dokku-arch vagrant up build-arch -# wait for "==> build-arch: ==> Finished making: dokku 0.33.5-2 (Mon Feb 22 23:20:37 CET 2016)" +# wait for "==> build-arch: ==> Finished making: dokku 0.33.7-2 (Mon Feb 22 23:20:37 CET 2016)" cd ../dokku-arch git add PKGBUILD .SRCINFO git commit -m 'Update to dokku 0.9.9' diff --git a/docs/getting-started/install/docker.md b/docs/getting-started/install/docker.md index 74691c3e4..c3547a630 100644 --- a/docs/getting-started/install/docker.md +++ b/docs/getting-started/install/docker.md @@ -3,7 +3,7 @@ Pull the dokku/dokku image: ```shell -docker pull dokku/dokku:0.33.5 +docker pull dokku/dokku:0.33.7 ``` Next, run the image. @@ -19,7 +19,7 @@ docker container run \ --publish 8443:443 \ --volume /var/lib/dokku:/mnt/dokku \ --volume /var/run/docker.sock:/var/run/docker.sock \ - dokku/dokku:0.33.5 + dokku/dokku:0.33.7 ``` The above command will start a new docker container that is ready when a message similar to `Runit started as PID 12345` appears. @@ -61,7 +61,7 @@ redis: https://github.com/dokku/dokku-redis.git The alternative is to build a custom docker image via a custom Dockerfile. This Dockerfile can run any `plugin:install` command. Note that the version installed at that time will be the one that persists. Below is an example Dockerfile showing this method. ```Dockerfile -FROM dokku/dokku:0.33.5 +FROM dokku/dokku:0.33.7 RUN dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres RUN dokku plugin:install https://github.com/dokku/dokku-redis.git redis ``` diff --git a/docs/getting-started/installation/index.md b/docs/getting-started/installation/index.md index bc854a779..96908e3d5 100644 --- a/docs/getting-started/installation/index.md +++ b/docs/getting-started/installation/index.md @@ -37,8 +37,8 @@ To install the latest stable version of Dokku, you can run the following shell c ```shell # for debian systems, installs Dokku via apt-get -wget -NP . https://dokku.com/install/v0.33.5/bootstrap.sh -sudo DOKKU_TAG=v0.33.5 bash bootstrap.sh +wget -NP . https://dokku.com/install/v0.33.7/bootstrap.sh +sudo DOKKU_TAG=v0.33.7 bash bootstrap.sh ``` The installation process takes about 5-10 minutes, depending upon internet connection speed. diff --git a/docs/home.html b/docs/home.html index 7bfc0addf..be965b719 100644 --- a/docs/home.html +++ b/docs/home.html @@ -10,26 +10,26 @@ Dokku - The smallest PaaS implementation you've ever seen - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + @@ -38,7 +38,7 @@ - + @@ -98,7 +98,7 @@
-
Latest release v0.33.5
+
Latest release v0.33.7

An open source PAAS alternative to Heroku.

Dokku helps you build and manage the lifecycle of applications from building to scaling.

@@ -125,7 +125,7 @@

$ - sudo DOKKU_TAG=v0.33.5 bash bootstrap.sh + sudo DOKKU_TAG=v0.33.7 bash bootstrap.sh


@@ -226,8 +226,8 @@ Create - - + + Deploy @@ -382,11 +382,11 @@ - + - + @@ -402,7 +402,7 @@ - + diff --git a/docs/processes/one-off-tasks.md b/docs/processes/one-off-tasks.md index 11419dc94..853b90bf2 100644 --- a/docs/processes/one-off-tasks.md +++ b/docs/processes/one-off-tasks.md @@ -2,7 +2,7 @@ ``` run [-e|--env KEY=VALUE] [--no-tty] # Run a command in a new container using the current app image -run:detached [-e|-env KEY=VALUE] [--no-tty] # Run a command in a new detached container using the current app image +run:detached [-e|-env KEY=VALUE] [--force-tty] # Run a command in a new detached container using the current app image run:list [--format json|stdout] [] # List all run containers for an app run:logs [-h] [-t] [-n num] [-q] # Display recent log output for run containers run:stop # Stops all run containers for an app or a specified run container @@ -73,6 +73,12 @@ dokku run:detached node-js-app ls -lah # returns the ID of the new container ``` +To start a detached container with a tty, specify the `--force-tty` flag. Containers will still exit upon command termination, but can be attached to as long as they are running. + +```shell +dokku run:detached --force-tty node-js-app bash +``` + ### Displaying one-off container logs You can easily get logs of all one-off containers for an app using the `logs` command: diff --git a/docs/template.html b/docs/template.html index e75d7f0cb..45eb33f4c 100644 --- a/docs/template.html +++ b/docs/template.html @@ -9,26 +9,26 @@ Dokku - {{DOC_TITLE}} - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + +