Docker 构建需要“y”响应的镜像

wO_*_*O_o 1 nginx docker docker-compose certbot

我正在尝试按照 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
...
Run Code Online (Sandbox Code Playgroud)

我使用 docker-compose 构建图像

$ docker-compose build
Run Code Online (Sandbox Code Playgroud)

构建在“# getcertificate”步骤中止

在此输入图像描述

在此输入图像描述

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

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

fdm*_*ion 5

尝试编辑 dockerfile 以将yes命令通过管道传输到失败的命令中:

RUN yes | /usr/local/bin/certbot-auto --nginx -y
Run Code Online (Sandbox Code Playgroud)

yes命令一遍又一遍地重复输出y加上返回键。将其通过管道传输到命令中会导致任何提示用户输入得到答复的内容y。当您无法在脚本中使用--forceor选项时,通常会使用它。-y