gpt4 book ai didi

ddev - 在 DDEV 中,我如何安装非 Debian 软件包,如 PECL、npm、pip 等

转载 作者:行者123 更新时间:2023-12-01 21:45:56 45 4
gpt4 key购买 nike

我想安装一些软件,比如 MySQL CLI toolthe docs比如说 .ddev/config.yaml 可以被编辑以添加额外的 debian 包...但是非 debian 包呢?您如何安装通常通过 pip install -U mycli 安装的东西?

最佳答案

[编辑 2020-04-10:这里的方法在 Customizing DDEV-Local images with a custom Dockerfile 中有更广泛的描述]

mysql CLI 工具 (mysql) 已经安装在 ddev web 和 db 容器中,但你肯定喜欢 mycli .

如您所知,大多数流行的 Linux 工具都有 Debian 软件包,使用 webimage_extra_packages: [package1, package2] per https://ddev.readthedocs.io/en/stable/users/extend/customizing-images/#adding-extra-debian-packages-with-webimage_extra_packages-and-dbimage_extra_packages 很容易安装这些软件包

在您的情况下,mycli 在其 github 页面上作为 Debian 软件包分发,因此您可以只使用 webimage_extra_packages: [mycli],这是安装它的最佳方式。

但是要在构建容器时自动安装其他工具(使用 npm 或 pip3 或 pecl/pear 或其他工具),您需要使用 custom Dockerfile .我们将使用您的 mycli 示例(就好像它没有 Debian 软件包一样)。

在 .ddev/web-build/Dockerfile 中,你会想要这样的东西,基于 .ddev/web-build/Dockerfile.example,它首先安装 pip3,然后使用它来安装 mycli:

ARG BASE_IMAGE=drud/ddev-webserver:v1.13.1
FROM $BASE_IMAGE
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends --no-install-suggests python3-pip python3-setuptools
RUN pip3 install mycli

当然,对于 npm 包,我们可以从 Dockerfile.example 中获取示例,RUN npm install --global gulp-cli。甚至可以安装 gcc 或 g++(就像我们安装 pip3 一样)并从源代码构建一个包。

如果您想安装 PECL/Pear 包,请使用 https://stackoverflow.com/a/60554990/215713 中的方法将工作。这是相同的基本思想。

自定义 Dockerfile(或 webimage_extra_packages,在需要时)的好处在于,包含额外指令的 Docker 镜像只需要在每个配置中构建一次,而不是在每次启动时构建。请注意自定义 Dockerfile 会覆盖 webimage_extra_packages,因此它们是互斥的。

关于ddev - 在 DDEV 中,我如何安装非 Debian 软件包,如 PECL、npm、pip 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60679857/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com