image - Docker:构建你自己的镜像问题

我正在发现 docker,并按照官方网站上的入门部分进行操作。 但是我陷入了“构建自己的图像”部分 link 在步骤 2 中,当您被要求从 docker 文件构建新图像时。 我正在开发 OSX Yosemite,我运行的所有内容都来自 Boot2Docker 终端。

这是教程中的 dockerfile:

FROM docker/whalesay:latest

RUN apt-get -y update && apt-get install -y fortunes

CMD /usr/games/fortunes -a | cowsay

我构建图像

docker build -t docker-whale .

apt 在安装 fortunes 时执行它的工作并向我显示以下日志

debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 

这是因为没有设置 TERM 环境变量 所以添加行

ENV TERM [term name]

解决了这个问题,但是我仍然有 dkkg-prconfigure 警报。 无论如何,这一切都不会破坏构建过程,但是当我执行图像时

docker run docker-whale

鲸鱼什么也没说,而是说财富的输出(空字段),因为没有找到程序

/bin/sh: 1: /usr/games/fortunes: not found

我不知道如何解决它,因为在构建过程中一切似乎都很好

Selecting previously unselected package fortune-mod.
Preparing to unpack .../fortune-mod_1%3a1.99.1-7_amd64.deb ...
Unpacking fortune-mod (1:1.99.1-7) ...
Selecting previously unselected package fortunes-min.
Preparing to unpack .../fortunes-min_1%3a1.99.1-7_all.deb ...
Unpacking fortunes-min (1:1.99.1-7) ...
Selecting previously unselected package fortunes.
Preparing to unpack .../fortunes_1%3a1.99.1-7_all.deb ...
Unpacking fortunes (1:1.99.1-7) ...
Setting up librecode0:amd64 (3.6-21) ...
Setting up fortune-mod (1:1.99.1-7) ...
Setting up fortunes-min (1:1.99.1-7) ...
Setting up fortunes (1:1.99.1-7) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...

任何已经玩过本教程的人给点提示会很棒。

最佳答案

dpkg-preconfigure 错误消息可以通过在调用 apt 之前运行以下行来修复:

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

not found 问题是由拼写错误引起的。简单替换

CMD /usr/games/fortunes -a | cowsay

作者:

CMD /usr/games/fortune -a | cowsay

https://stackoverflow.com/questions/31595177/

相关文章:

build - Xamarin:使用 NDK 构建的 .so

java - 从相同的源代码构建可以产生功能不同的可执行文件吗?

c++ - C++ 项目的 cmake vs waf

.net - IoC 容器,在编译时检查错误

c# - C# 中的友元程序集

haskell - 由于 native 依赖项中的 "multiple definition"链接器

perl - 有没有最简单的方法来构建 perl 包

java - Maven 构建顺序(多个模块)

maven - 是否有从 Maven 到 Bazel 的迁移路径?

c# - Visual Studio 2010 构建错误 - 来自 HRESULT : 0x8003