首页 > 解决方案 > 需要“y”响应的 Docker 构建映像

问题描述

我正在尝试按照 Certbot 网站上的步骤将 Certbot 安装到我的 Nginx 容器中:https ://certbot.eff.org/lets-encrypt/pip-nginx

Dockerfile:

FROM nginx:1.17.1

# install wget
RUN apt-get update
RUN apt-get install wget -y

# install certbot
RUN wget https://dl.eff.org/certbot-auto
RUN mv certbot-auto /usr/local/bin/certbot-auto
RUN chown root /usr/local/bin/certbot-auto
RUN chmod 0755 /usr/local/bin/certbot-auto

# get certificate
RUN /usr/local/bin/certbot-auto --nginx -y

# setup automatic renewal
...

我使用 docker-compose 构建图像

$ docker-compose build

构建在“#get certificate”步骤中止

在此处输入图像描述

在此处输入图像描述

...因为我无法在构建过程中输入“y”?

有没有办法在构建过程中输入“y”?我已经尝试传递 -y 标志,如我的 Dockerfile 中所示,但构建仍然中止。

标签: dockernginxdocker-composecertbot

解决方案


尝试编辑 dockerfile 以将yes命令传递到失败的命令中:

RUN yes | /usr/local/bin/certbot-auto --nginx -y

该命令一遍又一遍地yes重复输出加上返回键。y将其插入命令会导致任何提示用户输入以y. 当您无法在脚本中使用--forceor选项时,通常会使用它。-y


推荐阅读