diff --git a/apps/dokku/0.38.26/data.yml b/apps/dokku/0.38.26/data.yml deleted file mode 100644 index 4337ed83d..000000000 --- a/apps/dokku/0.38.26/data.yml +++ /dev/null @@ -1,101 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Application HTTP Port - labelZh: 应用 HTTP 端口 - label: - en: Application HTTP Port - zh: 应用 HTTP 端口 - zh-Hant: 應用程式 HTTP 連接埠 - ja: アプリ HTTP ポート - ko: 애플리케이션 HTTP 포트 - ru: HTTP-порт приложений - ms: Port HTTP Aplikasi - pt-br: Porta HTTP das Aplicações - required: true - rule: paramPort - type: number - - default: 8443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: Application HTTPS Port - labelZh: 应用 HTTPS 端口 - label: - en: Application HTTPS Port - zh: 应用 HTTPS 端口 - zh-Hant: 應用程式 HTTPS 連接埠 - ja: アプリ HTTPS ポート - ko: 애플리케이션 HTTPS 포트 - ru: HTTPS-порт приложений - ms: Port HTTPS Aplikasi - pt-br: Porta HTTPS das Aplicações - required: true - rule: paramPort - type: number - - default: 3022 - edit: true - envKey: PANEL_APP_PORT_SSH - labelEn: Git SSH Port - labelZh: Git SSH 端口 - label: - en: Git SSH Port - zh: Git SSH 端口 - zh-Hant: Git SSH 連接埠 - ja: Git SSH ポート - ko: Git SSH 포트 - ru: Порт Git SSH - ms: Port Git SSH - pt-br: Porta Git SSH - required: true - rule: paramPort - type: number - - default: dokku.me - edit: true - envKey: DOKKU_HOSTNAME - labelEn: Global Hostname - labelZh: 全局域名 - label: - en: Global Hostname - zh: 全局域名 - zh-Hant: 全域主機名稱 - ja: グローバルホスト名 - ko: 전역 호스트 이름 - ru: Глобальное имя хоста - ms: Nama Hos Global - pt-br: Nome de Host Global - required: true - type: text - - default: /var/lib/dokku - edit: true - envKey: APP_DATA_DIR - labelEn: Data Directory - labelZh: 数据目录 - label: - en: Data Directory - zh: 数据目录 - zh-Hant: 資料目錄 - ja: データディレクトリ - ko: 데이터 디렉터리 - ru: Каталог данных - ms: Direktori Data - pt-br: Diretório de Dados - required: true - type: text - - default: Asia/Shanghai - edit: true - envKey: TZ - labelEn: Timezone - labelZh: 时区 - label: - en: Timezone - zh: 时区 - zh-Hant: 時區 - ja: タイムゾーン - ko: 시간대 - ru: Часовой пояс - ms: Zon Waktu - pt-br: Fuso Horário - required: true - type: text diff --git a/apps/dokku/0.38.26/docker-compose.yml b/apps/dokku/0.38.26/docker-compose.yml deleted file mode 100644 index 572d9eb95..000000000 --- a/apps/dokku/0.38.26/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - dokku: - image: "dokku/dokku:0.38.26@sha256:0128539691d4fe8529f83dadd0a500f5f71ba0a6c003c59b8119fc3614d027ec" - container_name: ${CONTAINER_NAME} - restart: unless-stopped - network_mode: bridge - environment: - - DOKKU_HOSTNAME=${DOKKU_HOSTNAME} - - DOKKU_HOST_ROOT=${APP_DATA_DIR}/home/dokku - - DOKKU_LIB_HOST_ROOT=${APP_DATA_DIR}/var/lib/dokku - - TZ=${TZ} - volumes: - - "${APP_DATA_DIR}:/mnt/dokku" - - "/var/run/docker.sock:/var/run/docker.sock" - ports: - - "${PANEL_APP_PORT_SSH}:22" - - "${PANEL_APP_PORT_HTTP}:80" - - "${PANEL_APP_PORT_HTTPS}:443" - labels: - createdBy: "Apps" diff --git a/apps/dokku/0.38.26/scripts/init.sh b/apps/dokku/0.38.26/scripts/init.sh deleted file mode 100755 index 42dac740a..000000000 --- a/apps/dokku/0.38.26/scripts/init.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" - -read_env_value() { - local key="$1" - [[ -f "$ENV_FILE" ]] || return 0 - local value - value="$(sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n 1)" - case "$value" in - \"*\") value="${value#\"}"; value="${value%\"}" ;; - \'*\') value="${value#\'}"; value="${value%\'}" ;; - esac - printf '%s\n' "$value" -} - -configured_value() { - local key="$1" - local default_value="$2" - local value - value="${!key:-}" - if [[ -z "$value" ]]; then - value="$(read_env_value "$key")" - fi - printf '%s\n' "${value:-$default_value}" -} - -resolve_app_path() { - local raw="$1" - if [[ "$raw" = /* ]]; then - printf '%s\n' "$raw" - else - printf '%s\n' "$ROOT_DIR/${raw#./}" - fi -} - -ensure_dir() { - local path - path="$(resolve_app_path "$(configured_value "$1" "$2")")" - mkdir -p "$path" -} - -ensure_file_parent() { - local path - local parent - path="$(resolve_app_path "$(configured_value "$1" "$2")")" - parent="$(dirname "$path")" - mkdir -p "$parent" -} - -DATA_DIR="$(configured_value APP_DATA_DIR /var/lib/dokku)" -if [[ "$DATA_DIR" != /* ]]; then - echo "APP_DATA_DIR must be an absolute host path for Dokku" >&2 - exit 1 -fi -mkdir -p "$DATA_DIR" diff --git a/apps/dokku/0.38.26/scripts/upgrade.sh b/apps/dokku/0.38.26/scripts/upgrade.sh deleted file mode 100755 index 6e877466e..000000000 --- a/apps/dokku/0.38.26/scripts/upgrade.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail diff --git a/apps/dokku/0.38.26/.env.sample b/apps/dokku/0.38.27/.env.sample similarity index 84% rename from apps/dokku/0.38.26/.env.sample rename to apps/dokku/0.38.27/.env.sample index 180e644ca..68bcba99b 100644 --- a/apps/dokku/0.38.26/.env.sample +++ b/apps/dokku/0.38.27/.env.sample @@ -1,7 +1,6 @@ +CONTAINER_NAME=dokku-compose-check PANEL_APP_PORT_HTTP=8080 PANEL_APP_PORT_HTTPS=8443 PANEL_APP_PORT_SSH=3022 DOKKU_HOSTNAME=dokku.me -APP_DATA_DIR=/var/lib/dokku TZ=Asia/Shanghai -CONTAINER_NAME=dokku-compose-check diff --git a/apps/dokku/0.38.27/data.yml b/apps/dokku/0.38.27/data.yml new file mode 100644 index 000000000..acebe0764 --- /dev/null +++ b/apps/dokku/0.38.27/data.yml @@ -0,0 +1,85 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Application HTTP Port + labelZh: 应用 HTTP 端口 + label: + en: Application HTTP Port + zh: 应用 HTTP 端口 + zh-Hant: 應用程式 HTTP 連接埠 + ja: アプリ HTTP ポート + ko: 애플리케이션 HTTP 포트 + ru: HTTP-порт приложений + ms: Port HTTP Aplikasi + pt-br: Porta HTTP das Aplicações + required: true + rule: paramPort + type: number + - default: 8443 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Application HTTPS Port + labelZh: 应用 HTTPS 端口 + label: + en: Application HTTPS Port + zh: 应用 HTTPS 端口 + zh-Hant: 應用程式 HTTPS 連接埠 + ja: アプリ HTTPS ポート + ko: 애플리케이션 HTTPS 포트 + ru: HTTPS-порт приложений + ms: Port HTTPS Aplikasi + pt-br: Porta HTTPS das Aplicações + required: true + rule: paramPort + type: number + - default: 3022 + edit: true + envKey: PANEL_APP_PORT_SSH + labelEn: Git SSH Port + labelZh: Git SSH 端口 + label: + en: Git SSH Port + zh: Git SSH 端口 + zh-Hant: Git SSH 連接埠 + ja: Git SSH ポート + ko: Git SSH 포트 + ru: Порт Git SSH + ms: Port Git SSH + pt-br: Porta Git SSH + required: true + rule: paramPort + type: number + - default: dokku.me + edit: true + envKey: DOKKU_HOSTNAME + labelEn: Global Hostname + labelZh: 全局域名 + label: + en: Global Hostname + zh: 全局域名 + zh-Hant: 全域主機名稱 + ja: グローバルホスト名 + ko: 전역 호스트 이름 + ru: Глобальное имя хоста + ms: Nama Hos Global + pt-br: Nome de Host Global + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon Waktu + pt-br: Fuso Horário + required: true + type: text diff --git a/apps/dokku/0.38.26/data/.gitkeep b/apps/dokku/0.38.27/data/.gitkeep similarity index 100% rename from apps/dokku/0.38.26/data/.gitkeep rename to apps/dokku/0.38.27/data/.gitkeep diff --git a/apps/dokku/latest/docker-compose.yml b/apps/dokku/0.38.27/docker-compose.yml similarity index 62% rename from apps/dokku/latest/docker-compose.yml rename to apps/dokku/0.38.27/docker-compose.yml index 49a71e805..1fd7895ab 100644 --- a/apps/dokku/latest/docker-compose.yml +++ b/apps/dokku/0.38.27/docker-compose.yml @@ -1,16 +1,16 @@ services: dokku: - image: "dokku/dokku:latest" + image: "dokku/dokku:0.38.27@sha256:4fb49b29f643265945ef5da3878c7933205a9b60a1ac767f821834c802a56065" container_name: ${CONTAINER_NAME} restart: unless-stopped network_mode: bridge environment: - DOKKU_HOSTNAME=${DOKKU_HOSTNAME} - - DOKKU_HOST_ROOT=${APP_DATA_DIR}/home/dokku - - DOKKU_LIB_HOST_ROOT=${APP_DATA_DIR}/var/lib/dokku + - DOKKU_HOST_ROOT=/var/lib/dokku/home/dokku + - DOKKU_LIB_HOST_ROOT=/var/lib/dokku/var/lib/dokku - TZ=${TZ} volumes: - - "${APP_DATA_DIR}:/mnt/dokku" + - "/var/lib/dokku:/mnt/dokku" - "/var/run/docker.sock:/var/run/docker.sock" ports: - "${PANEL_APP_PORT_SSH}:22" diff --git a/apps/dokku/0.38.27/scripts/init.sh b/apps/dokku/0.38.27/scripts/init.sh new file mode 100755 index 000000000..35d7926dc --- /dev/null +++ b/apps/dokku/0.38.27/scripts/init.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -euo pipefail + +DOKKU_DATA_DIR=/var/lib/dokku + +if [[ -L "$DOKKU_DATA_DIR" ]]; then + echo "Refusing to use symbolic link as Dokku data directory: $DOKKU_DATA_DIR" >&2 + exit 1 +fi + +mkdir -p -- "$DOKKU_DATA_DIR" diff --git a/apps/dokku/0.38.26/scripts/uninstall.sh b/apps/dokku/0.38.27/scripts/uninstall.sh similarity index 100% rename from apps/dokku/0.38.26/scripts/uninstall.sh rename to apps/dokku/0.38.27/scripts/uninstall.sh diff --git a/apps/dokku/0.38.27/scripts/upgrade.sh b/apps/dokku/0.38.27/scripts/upgrade.sh new file mode 100755 index 000000000..acf71b3d0 --- /dev/null +++ b/apps/dokku/0.38.27/scripts/upgrade.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)" +ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" +DOKKU_DATA_DIR=/var/lib/dokku + +read_legacy_data_dir() { + [[ -f "$ENV_FILE" ]] || return 0 + + local line value='' + while IFS= read -r line || [[ -n "$line" ]]; do + case "$line" in + APP_DATA_DIR=*) value="${line#APP_DATA_DIR=}" ;; + esac + done < "$ENV_FILE" + [[ "$value" != *$'\n'* && "$value" != *$'\r'* ]] || { + echo "Invalid APP_DATA_DIR value in $ENV_FILE" >&2 + return 1 + } + case "$value" in + \"*\") value="${value#\"}"; value="${value%\"}" ;; + \'*\') value="${value#\'}"; value="${value%\'}" ;; + esac + printf '%s\n' "$value" +} + +legacy_data_dir="${APP_DATA_DIR:-$(read_legacy_data_dir)}" +if [[ -n "$legacy_data_dir" && "$legacy_data_dir" != "$DOKKU_DATA_DIR" ]]; then + cat >&2 <&2 + exit 1 +fi + +mkdir -p -- "$DOKKU_DATA_DIR" diff --git a/apps/dokku/README.md b/apps/dokku/README.md index 23cb3fb63..523ac085b 100644 --- a/apps/dokku/README.md +++ b/apps/dokku/README.md @@ -20,9 +20,15 @@ Dokku 是面向单机服务器的开源 PaaS,可通过 Git 推送、Dockerfile ## 数据持久化 -- `APP_DATA_DIR` 必须是宿主机绝对路径,默认 `/var/lib/dokku`。 -- 该目录挂载到 `/mnt/dokku`,保存 Git 仓库、插件、配置、服务数据和 SSH 状态。 -- 升级前应备份整个目录,并同时备份 Dokku 创建的应用容器、卷和数据库插件数据。 +- Dokku 按官方容器部署契约固定使用宿主机 `/var/lib/dokku`,并将其挂载到容器内 `/mnt/dokku`。 +- 该目录保存 Git 仓库、插件、配置、服务数据和 SSH 状态。为避免不同 Dokku 实例共享并覆盖同一状态,本应用限制为单实例,且不提供自定义数据目录表单。 +- 升级前应备份整个 `/var/lib/dokku`,并同时备份 Dokku 创建的应用容器、卷和数据库插件数据。 + +### 旧版自定义路径迁移 + +早期包允许通过 `APP_DATA_DIR` 指定其他宿主机路径。新版本不会自动移动这类持久化数据,也不会在路径不一致时静默启动一个空的 `/var/lib/dokku`。 + +升级前请停止 Dokku,完整备份旧目录,将其中的全部内容迁移到 `/var/lib/dokku`,并确认属主、权限以及插件和 SSH 状态无误。然后在当前旧版本的 1Panel 应用参数中,将“数据目录”改为 `/var/lib/dokku`,确认当前实例可正常启动后再选择升级。不要只手工修改安装目录的 `.env`,因为 1Panel 在升级时会从已保存的应用参数重写该文件。若检测到其他非空路径,`upgrade.sh` 会明确中止。 ## 高风险权限说明 @@ -30,6 +36,12 @@ Dokku 的核心功能必须挂载宿主机 `/var/run/docker.sock`。这相当于 仅在专用或充分受信任的服务器上安装。不要向不受信任用户开放 Dokku SSH 权限,不要安装来源不明的插件。卸载 Dokku 应用不会自动删除它创建的子容器、镜像、网络和卷,需要管理员按上游流程审计后手工清理。 +## 镜像安全提示 + +当前镜像的 Docker 相关工具包含 Trivy 标记为 High 的 Moby/Docker 与 Go 标准库问题,其中包括授权插件绕过、针对恶意容器镜像执行 `docker cp`/压缩归档上传时的宿主机代码执行或文件覆盖风险,以及符号链接目录遍历风险。由于 Dokku 必须直接访问宿主机 Docker Socket,这些问题不能按普通低权限容器处理。 + +仅部署受信任镜像和应用源码;不要对不受信任容器执行 `docker cp` 或压缩归档上传;不要向不受信任用户授予 Dokku SSH、插件安装或 Docker 操作权限。后续 Dokku 镜像包含已修复的 Docker/Go 工具链后应尽快升级。 + ## 端口与网络风险 - Dokku 部署的应用可能创建额外端口和 Docker 网络,这些资源不会自动出现在当前应用包的 Compose 文件中。 diff --git a/apps/dokku/data.yml b/apps/dokku/data.yml index 3c32ae7c9..e451c094a 100644 --- a/apps/dokku/data.yml +++ b/apps/dokku/data.yml @@ -1,33 +1,37 @@ name: Dokku tags: - - DevOps - - PaaS +- DevOps +- Server title: 基于 Docker 的单机应用部署与生命周期管理平台 description: 基于 Docker 的单机应用部署与生命周期管理平台 additionalProperties: key: dokku name: Dokku tags: - - DevOps - - Server + - DevOps + - Server + type: tool + website: https://dokku.com + document: https://dokku.com/docs/getting-started/install/docker/ + github: https://github.com/dokku/dokku shortDescZh: 基于 Docker 的单机应用部署与生命周期管理平台 - shortDescEn: Docker-powered platform for building, deploying, and managing applications on one server + shortDescEn: Docker-powered platform for building, deploying, and managing applications + on one server + crossVersionUpdate: true + limit: 1 + architectures: + - amd64 + - arm64 description: - en: Build, deploy, and manage applications on a single server through Git pushes, Docker, buildpacks, and plugins. + en: Build, deploy, and manage applications on a single server through Git pushes, + Docker, buildpacks, and plugins. zh: 通过 Git 推送、Docker、Buildpack 和插件在单台服务器上构建、部署和管理应用。 zh-Hant: 透過 Git 推送、Docker、Buildpack 和外掛在單台伺服器上建置、部署和管理應用程式。 ja: Gitプッシュ、Docker、Buildpack、プラグインを使用して単一サーバー上のアプリケーションを構築・デプロイ・管理します。 ko: Git 푸시, Docker, 빌드팩 및 플러그인을 통해 단일 서버에서 애플리케이션을 빌드, 배포 및 관리합니다. - ru: Создавайте, развертывайте и управляйте приложениями на одном сервере с помощью Git, Docker, buildpack и плагинов. - ms: Bina, gunakan dan urus aplikasi pada satu pelayan melalui Git, Docker, buildpack dan pemalam. - pt-br: Crie, implante e gerencie aplicações em um único servidor com Git, Docker, buildpacks e plugins. - type: tool - crossVersionUpdate: true - limit: 1 - recommend: 0 - website: https://dokku.com - github: https://github.com/dokku/dokku - document: https://dokku.com/docs/getting-started/install/docker/ - architectures: - - amd64 - - arm64 + ru: Создавайте, развертывайте и управляйте приложениями на одном сервере с помощью + Git, Docker, buildpack и плагинов. + ms: Bina, gunakan dan urus aplikasi pada satu pelayan melalui Git, Docker, buildpack + dan pemalam. + pt-br: Crie, implante e gerencie aplicações em um único servidor com Git, Docker, + buildpacks e plugins. diff --git a/apps/dokku/latest/.env.sample b/apps/dokku/latest/.env.sample deleted file mode 100644 index 180e644ca..000000000 --- a/apps/dokku/latest/.env.sample +++ /dev/null @@ -1,7 +0,0 @@ -PANEL_APP_PORT_HTTP=8080 -PANEL_APP_PORT_HTTPS=8443 -PANEL_APP_PORT_SSH=3022 -DOKKU_HOSTNAME=dokku.me -APP_DATA_DIR=/var/lib/dokku -TZ=Asia/Shanghai -CONTAINER_NAME=dokku-compose-check diff --git a/apps/dokku/latest/data.yml b/apps/dokku/latest/data.yml deleted file mode 100644 index 4337ed83d..000000000 --- a/apps/dokku/latest/data.yml +++ /dev/null @@ -1,101 +0,0 @@ -additionalProperties: - formFields: - - default: 8080 - edit: true - envKey: PANEL_APP_PORT_HTTP - labelEn: Application HTTP Port - labelZh: 应用 HTTP 端口 - label: - en: Application HTTP Port - zh: 应用 HTTP 端口 - zh-Hant: 應用程式 HTTP 連接埠 - ja: アプリ HTTP ポート - ko: 애플리케이션 HTTP 포트 - ru: HTTP-порт приложений - ms: Port HTTP Aplikasi - pt-br: Porta HTTP das Aplicações - required: true - rule: paramPort - type: number - - default: 8443 - edit: true - envKey: PANEL_APP_PORT_HTTPS - labelEn: Application HTTPS Port - labelZh: 应用 HTTPS 端口 - label: - en: Application HTTPS Port - zh: 应用 HTTPS 端口 - zh-Hant: 應用程式 HTTPS 連接埠 - ja: アプリ HTTPS ポート - ko: 애플리케이션 HTTPS 포트 - ru: HTTPS-порт приложений - ms: Port HTTPS Aplikasi - pt-br: Porta HTTPS das Aplicações - required: true - rule: paramPort - type: number - - default: 3022 - edit: true - envKey: PANEL_APP_PORT_SSH - labelEn: Git SSH Port - labelZh: Git SSH 端口 - label: - en: Git SSH Port - zh: Git SSH 端口 - zh-Hant: Git SSH 連接埠 - ja: Git SSH ポート - ko: Git SSH 포트 - ru: Порт Git SSH - ms: Port Git SSH - pt-br: Porta Git SSH - required: true - rule: paramPort - type: number - - default: dokku.me - edit: true - envKey: DOKKU_HOSTNAME - labelEn: Global Hostname - labelZh: 全局域名 - label: - en: Global Hostname - zh: 全局域名 - zh-Hant: 全域主機名稱 - ja: グローバルホスト名 - ko: 전역 호스트 이름 - ru: Глобальное имя хоста - ms: Nama Hos Global - pt-br: Nome de Host Global - required: true - type: text - - default: /var/lib/dokku - edit: true - envKey: APP_DATA_DIR - labelEn: Data Directory - labelZh: 数据目录 - label: - en: Data Directory - zh: 数据目录 - zh-Hant: 資料目錄 - ja: データディレクトリ - ko: 데이터 디렉터리 - ru: Каталог данных - ms: Direktori Data - pt-br: Diretório de Dados - required: true - type: text - - default: Asia/Shanghai - edit: true - envKey: TZ - labelEn: Timezone - labelZh: 时区 - label: - en: Timezone - zh: 时区 - zh-Hant: 時區 - ja: タイムゾーン - ko: 시간대 - ru: Часовой пояс - ms: Zon Waktu - pt-br: Fuso Horário - required: true - type: text diff --git a/apps/dokku/latest/data/.gitkeep b/apps/dokku/latest/data/.gitkeep deleted file mode 100644 index 8b1378917..000000000 --- a/apps/dokku/latest/data/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/dokku/latest/scripts/init.sh b/apps/dokku/latest/scripts/init.sh deleted file mode 100755 index 42dac740a..000000000 --- a/apps/dokku/latest/scripts/init.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" - -read_env_value() { - local key="$1" - [[ -f "$ENV_FILE" ]] || return 0 - local value - value="$(sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n 1)" - case "$value" in - \"*\") value="${value#\"}"; value="${value%\"}" ;; - \'*\') value="${value#\'}"; value="${value%\'}" ;; - esac - printf '%s\n' "$value" -} - -configured_value() { - local key="$1" - local default_value="$2" - local value - value="${!key:-}" - if [[ -z "$value" ]]; then - value="$(read_env_value "$key")" - fi - printf '%s\n' "${value:-$default_value}" -} - -resolve_app_path() { - local raw="$1" - if [[ "$raw" = /* ]]; then - printf '%s\n' "$raw" - else - printf '%s\n' "$ROOT_DIR/${raw#./}" - fi -} - -ensure_dir() { - local path - path="$(resolve_app_path "$(configured_value "$1" "$2")")" - mkdir -p "$path" -} - -ensure_file_parent() { - local path - local parent - path="$(resolve_app_path "$(configured_value "$1" "$2")")" - parent="$(dirname "$path")" - mkdir -p "$parent" -} - -DATA_DIR="$(configured_value APP_DATA_DIR /var/lib/dokku)" -if [[ "$DATA_DIR" != /* ]]; then - echo "APP_DATA_DIR must be an absolute host path for Dokku" >&2 - exit 1 -fi -mkdir -p "$DATA_DIR" diff --git a/apps/dokku/latest/scripts/uninstall.sh b/apps/dokku/latest/scripts/uninstall.sh deleted file mode 100755 index 6e877466e..000000000 --- a/apps/dokku/latest/scripts/uninstall.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail diff --git a/apps/dokku/latest/scripts/upgrade.sh b/apps/dokku/latest/scripts/upgrade.sh deleted file mode 100755 index 6e877466e..000000000 --- a/apps/dokku/latest/scripts/upgrade.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail diff --git a/apps/dokku/logo.png b/apps/dokku/logo.png index d3c06a082..2deae7961 100644 Binary files a/apps/dokku/logo.png and b/apps/dokku/logo.png differ