【问题标题】:Dockerfile with centos:latest and pdns [closed]带有 centos:latest 和 pdns 的 Dockerfile [关闭]
【发布时间】:2021-11-17 22:42:27
【问题描述】:

我有一个使用 centos:latest 的简单 Dockerfile,它无法使用 yum 找到 pdns。这是在 Windows 主机上运行的。

$ docker --version
Docker 版本 20.10.8,构建 3967b7d

Dockerfile_dns

FROM centos:latest

RUN yum update -y

RUN yum install -y epel-release pdns pdns-tools pdns-backend-postgresql pdns-backend-sqlite pdns-recursor net-tools bind-utils jq

使用命令
$ docker build -t dns_img -f Dockerfile_dns .

#5 [2/3] RUN yum update -y
#5 sha256:103582845ea3b4ba6361ca1a570ed91dbb7ffbdb7bd1b67e3dc21635f2dfc8da
#5 CACHED

#6 [3/3] RUN yum install -y epel-release pdns pdns-tools pdns-backend-postgresql pdns-backend-sqlite pdns-recursor net-tools bind-utils jq
#6 sha256:6639667b2dcec34132dc4bfb88fe520d625f4ab8de649b631344017f22fbd2d7
#6 2.419 Last metadata expiration check: 0:16:22 ago on Fri Sep 24 16:21:33 2021.
#6 2.788 No match for argument: pdns
#6 2.792 No match for argument: pdns-tools
#6 2.796 No match for argument: pdns-backend-postgresql
#6 2.800 No match for argument: pdns-backend-sqlite
#6 2.804 No match for argument: pdns-recursor
#6 2.817 Error: Unable to find a match: pdns pdns-tools pdns-backend-postgresql pdns-backend-sqlite pdns-recursor
#6 ERROR: executor failed running [/bin/sh -c yum install -y epel-release pdns pdns-tools pdns-backend-postgresql pdns-backend-sqlite pdns-recursor net-tools bind-utils jq]: exit code: 1

我发现了一些使用特定 centos 版本的参考资料,但这也无济于事。

【问题讨论】:

    标签: docker centos powerdns


    【解决方案1】:

    那是因为你安装的仓库中没有这些依赖。

    安装此 repo,您​​将获得所需的软件包:

    RUN yum install epel-release
    

    在你可以安装你的包之后:

    RUN yum install -y pdns pdns-tools pdns-backend-postgresql pdns-backend-sqlite pdns-recursor net-tools bind-utils jq
    

    无法安装 repo 及其仅包含的依赖项,因为 yum 一次执行安装,而不是像 python 的 pip 那样一个接一个地执行安装

    【讨论】:

    • 就在第三行。运行 yum install -y epel-release pdns pdns-tools.....
    • 您必须先执行此操作,这就是为什么有些教程将他们的yum install 拆分为多个部分,这一切都是一次性完成的。之前运行它,然后安装其他所有东西
    • @wood.wheels 是否解决了您的问题?如果是,请接受答案
    • epel-release 必须在单独的行上。更改您的答案,我会将其标记为正确。
    • 是的,就是我先运行的意思,我再讲清楚
    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2019-04-22
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2022-01-19
    相关资源
    最近更新 更多