AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 909277
Accepted
Philipp Claßen
Philipp Claßen
Asked: 2017-04-27 12:27:44 +0800 CST2017-04-27 12:27:44 +0800 CST 2017-04-27 12:27:44 +0800 CST

在 docker 容器中安装 certbot 时避免用户与 tzdata 交互

  • 772

我想在带有 Ubuntu 16.04 映像的 docker 环境中安装certbot :

例如:

docker run -it ubuntu:16.04 /bin/bash

当我在容器中时,安装 certbot 的最直接方法不起作用,因为它需要用户干预:

apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

问题是tzdata,它会随着这个交互式对话框而停止:

Extracting templates from packages: 100%
Preconfiguring packages ...
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

 1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
 2. America     5. Arctic     8. Europe    11. SystemV
 3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 

奇怪的是,当我tzdata在添加 ppa 之前安装时它可以工作:

apt-get update && \
apt-get install -y tzdata && \
apt-get install -y software-properties-common && \
add-apt-repository -y -u ppa:certbot/certbot && \
apt-get install -y certbot

问题:

  • 为什么tzdata在添加 ppa 之前或之后安装会有所不同?
  • 安装 certbot 时是否有更好的方法来避免交互式对话框?
apt
  • 5 5 个回答
  • 159569 Views

5 个回答

  • Voted
  1. Best Answer
    Aditya Pawaskar
    2018-03-10T05:08:01+08:002018-03-10T05:08:01+08:00

    要在没有交互式对话的情况下运行dpkg(在 Apt 等其他工具之后),您可以将一个环境变量设置为

    DEBIAN_FRONTEND=noninteractive
    

    例如,您可以使用ARG在 Dockerfile 中设置它:

    ARG DEBIAN_FRONTEND=noninteractive
    
    • 316
  2. Terentev Maksim
    2018-12-07T01:51:07+08:002018-12-07T01:51:07+08:00

    在 Ubuntu 18.04 上,我做了那个 Dockerfile:

    ENV TZ=Europe/Minsk
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    RUN apt update && apt instal....
    
    • 91
  3. FlyingV
    2019-03-09T23:56:28+08:002019-03-09T23:56:28+08:00

    TL&DR: 在您的 DockerFile 中

    ENV DEBIAN_FRONTEND=noninteractive 
    

    原因:

    某些安装程序通过具有良好的前端使“安装”更容易。虽然在手动安装时这很好,但在自动安装期间这会成为一个问题。

    您可以通过在您的环境字符串中放置以下内容来覆盖交互式安装。

    干杯

    • 70
  4. pyfreyr
    2019-03-28T18:04:37+08:002019-03-28T18:04:37+08:00

    您可以DEBIAN_FRONTEND=noninteractive在命令之前设置以避免ENV DEBIAN_FRONTEND=noninteractive影响命令之后或子图像:

    RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
            tzdata \
        && rm -rf /var/lib/apt/lists/*
    
    • 26
  5. James Bond
    2021-02-19T03:00:47+08:002021-02-19T03:00:47+08:00

    您应该在安装之前tzdata设置您的时区:

    # Set timezone:
    RUN ln -snf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && echo $CONTAINER_TIMEZONE > /etc/timezone
    
    # Install dependencies:
    RUN apt-get update && apt-get install -y tzdata
    
    • 13

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve