docker - 需要“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 中所示,但构建仍然中止。
解决方案
尝试编辑 dockerfile 以将yes
命令传递到失败的命令中:
RUN yes | /usr/local/bin/certbot-auto --nginx -y
该命令一遍又一遍地yes
重复输出加上返回键。y
将其插入命令会导致任何提示用户输入以y
. 当您无法在脚本中使用--force
or选项时,通常会使用它。-y
推荐阅读
- react-native - React Native 椭圆滚动
- excel - 复制并粘贴到下一个空白行?
- dataframe - 将csv文件读入python pandas
- saml-2.0 - 对于某些 Idp,只有 Acs URL 发送 500 错误,不幸的是,没有记录或返回任何内容,以便了解究竟发生了什么
- typescript - 如何在 Typescript 中为工厂模式应用不同的编译时警告和语法突出显示?
- flutter - 错误:错误:必须初始化不可为空的实例字段“searchBar”。(在 _SearchBarDemoHomeState() { searchBar = SearchBar( )
- reactjs - 当数据是对象数组时重命名 Grid.js dataTable 中的列标题(Svelte)
- api - 回调 API 到 URL
- uwsgi - 使用 uwsgi 时没有名为“编码”的模块
- reactjs - `getDerivedStateFromProps` 没有更新状态