如何正确安装 dokku - 使用或不使用 sudo?

How to correctly install dokku - with or without sudo?

我现在正在学习 dokku 以进行简单的 Web 部署。官方安装说明声明此命令:

wget -qO- https://raw.github.com/progrium/dokku/v0.3.12/bootstrap.sh | sudo DOKKU_TAG=v0.3.12 bash

我不是开发人员或管理员,但据我了解这一行,它在 root 帐户下执行所有引导和安装,感谢 sudo。所以 dokku 将被签出到具有 root 访问权限的目录中,并且所有其他目录(如 /var/lib/dokku/ 也将具有 root 访问权限。

问题是——互联网上所有关于 dokku 的文章都指示执行 dokku 命令或在没有 sudo 的情况下执行与 dokku 相关的操作。例如,关于这个 dokku 数据库插件的说明,https://github.com/krisrang/dokku-mariadb,指示通过以下方式安装它:

cd /var/lib/dokku/plugins
git clone https://github.com/krisrang/dokku-mariadb mariadb
dokku plugins-install

这是行不通的,因为 /var/lib/dokku/plugins 拥有 root 访问权限,而 git clone 将因 acces denied 而失败。现在很难成为一名非管理员,但也许有人会暗示我做错了什么?我是否需要以其他方式安装 dokku,或者互联网上所有与 dokku 相关的教程都假定我在 root 下执行它们(根据我有限的管理知识,出于安全原因,强烈不推荐)。

据我所知,您需要 运行 它作为 root。没有 root 权限安装程序的传统方法是 download the source and compile it,这可以通过 运行ning:

来完成

git clone https://github.com/progrium/dokku.git

make

make install

Dokku 的 makefile 依赖于 apt-get,它需要 root 访问 运行。

我不熟悉 dokku 或 dokku-mariadb,但我认为 dokku-mariadb 的作者也假定了 root 访问权限。

你应该 运行 这三个命令 sudo:

sudo su -

dokku 二进制文件将 运行 编码为 dokku 用户,即使您以 root 身份执行也是如此。所以按原样 运行 应该没问题。一旦您成为 sudo 用户,只需 运行 您问题中列出的安装说明。希望我的回答有帮助! :)

我也像他们提到的那样联系了他们:

In the future, we'll have a method to install plugins directly with a dokku command

如果有人 运行 正在研究是否可以通过 root 用户安装(根据指南在新创建的 VM 上),请尝试检查此 Github 问题: https://github.com/dokku/dokku/issues/961

由于与 dokku 相关的命令的前缀是 # 而不是 $,这意味着非 root 用户不需要 运行 它们。这也使得编写 suddo 变得不必要(并且我的经验适得其反)。