【问题标题】:docker-compose build error ubuntu mangodocker-compose 构建错误 ubuntu 芒果
【发布时间】:2017-01-15 22:14:59
【问题描述】:

Docker 新手在这里...

我正在跟踪 pango gem 的 docker-compose 构建错误。 mkmf.log 文件中显示的一项检查是:

have_package: 检查 pango 版本 (>= 1.14.0)...-------------------- 没有

我安装了 pango 3.1.0,所以结果应该是“是”,但我想知道“have_package”的语法是否应该有一个

如果以上都不是问题,那么链接进程似乎找不到 libpango1.0-dev 库。我手动安装了它,但库在这个目录中:

./usr/share/doc/

但是查看 docker build 目录,这些库似乎应该位于 docker 目录的深处。我不知道如何在那里安装它们。 docker 构建日志是这样说的:

无法运行 'apt-get install -V -y libpango1.0-dev'

我的其他基于 c-lib 的 gem 表现良好,没有这个问题

任何指导将不胜感激!

【问题讨论】:

  • 请包含您使用的 Dockerfile。
  • # 如果 Gemfile 在 Gemfile.lock 之后被修改,则抛出错误 RUN bundle config --global freeze 1 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ONBUILD COPY Gemfile /usr /src/app/ ONBUILD COPY Gemfile.lock /usr/src/app/ ONBUILD RUN bundle install ONBUILD COPY 。 /usr/src/app

标签: ubuntu docker build pango


【解决方案1】:

解决方案:在我们的开发环境(Ubuntu 14.04)上,此命令运行良好:

     **apt-get install libpango1.0-dev**

但是当我们的 docker 容器被构建时,它实例化了一个 Debian 8 (Jessie)。我们登录到该实例的 bash(即使构建因错误而终止),并在该环境中尝试了 apt-get install libpango1.0-dev 命令。有趣的是,该命令失败了(文件“找不到”)!

然后我们在加载了大量资源的 Debian 上进行了 apt-get update。 apt-get 更新后,apt-get 安装成功!我们不确定为什么,但确实如此!

我们最初的 docker 文件确实要求进行 apt-get 更新,但在我们尝试安装 libpango1.0-dev 之前它显然没有被执行。这是因为我们使用了一堆 ONBUILD 命令。所以我们删除了所有的 ONBUILD 命令并使用了一个像这样的 docker 文件:

FROM ruby:2.2
RUN apt-get update -qq && apt-get install -y build-essential nodejs libpq-dev
RUN bundle config --global frozen 1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY Gemfile /usr/src/app/
COPY Gemfile.lock /usr/src/app/
RUN bundle install
COPY . /usr/src/app
CMD bundle exec puma -C config/puma.rb

这就是我们问题的解决方案!

[但它给我们留下了以下问题:a) 为什么 Debian 8 需要 apt-update 才能成功找到/安装我们的 pango 库,b) 为什么我们使用 ONBUILDS 的原始 docker 文件无法执行 apt-update在尝试 apt-get pango 库之前。]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多