问题标签 [docker-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

meteor - '/bin/sh -c bash $METEORD_DIR/on_build.sh' 返回一个非零代码:1

我对 docker 很陌生,我想做的是创建我的 Meteor 应用程序的 docker 映像,然后在容器中运行它。(我在 OSX 上工作)

如果我错了,请纠正我,但步骤是:

1)cd /myMeteorApp
2)创建一个包含在我的案例中的文件 Dockerfile FROM meteorhacks/meteord:onbuild
3)docker build --tag jeromevi:mycoolmeteorapp .
4)docker images在这里我有:
在此处输入图像描述

有人可以帮我弄清楚我做错了什么吗?

[编辑] 下面的截图是我创建图像时发生的事情 在此处输入图像描述

0 投票
1 回答
5412 浏览

logging - 如何记录 docker build 安装包错误

当我通过 dockerfile 使用以下命令构建 docker 映像时:docker build -t test/app1 .

docker 构建成功但是,我注意到它通过构建安装包时出现了一些错误。如何在 linux 上跟踪/记录这些软件包安装错误?

谢谢。

0 投票
2 回答
407 浏览

docker - Docker 在不存在运行容器时创建悬空图像

我尝试 dockerize 我的 Java 应用程序。每当我构建一个新镜像时,Docker 都会将新镜像添加到列表中,而不会删除旧镜像。我不运行图像,我只是一次又一次地构建。我认为它应该删除旧的。我错了吗?

码头工人文件

命令

结果

在此处输入图像描述

0 投票
2 回答
3830 浏览

docker - Docker:无法纠正问题,您持有损坏的包

我有 Dockerfile,我用过很多次都没有问题。现在我需要向它添加一些包(ssmtp 和 sendmail),当我添加它们时,构建失败并显示:

如果我将这些包添加到列表中,我就会抱怨其他包。这个“持有损坏的包裹”消息是什么意思,我该如何解决?

这是我的 Dockerfile 的第一部分:

我尝试添加 sendmail-bin,然后失败:

然后我添加了 mail-transport-agent 并失败了:

0 投票
1 回答
146 浏览

apt-get - 使用 Docker 的选择性 apt-get 失败

在将 dockerfile 发送给客户端之前,我准备并测试了它,在客户端的机器上,构建过程遇到了 apt-get 错误。这是截屏一些包下载失败的例子。

这似乎不是代理问题,因为大多数包和一些 wget 工作正常。我在自己的机器上没有遇到任何此类错误,所以我不知道如何调试问题。有什么线索吗?我特别好奇 400 bad request 错误表示什么。它与导致它的404有关吗?

编辑:这是Dockerfile的链接。

0 投票
1 回答
4537 浏览

docker - docker build giving unauthorized: authentication required

My docker version is

I am trying to build the image using command

The DockerFile content is

config.json is

On running docker build, it gives error

I have already done docker login. That's how config.json is created. I am new to containers and following the get started tutorial https://blogs.msdn.microsoft.com/allthingscontainer/2016/09/15/windows-containers-getting-started-a-step-by-step-guide/. Any idea how can I work around this.

Also I figured out that docker pull is working for me. While this also required authentication

0 投票
2 回答
12924 浏览

docker - 我可以用来构建 Dockerfile 的最轻量级的基础镜像是什么?

我通常使用 Ubuntu 或 Arch Linux 映像,但最近我发现有一个名为 CoreOS 的操作系统专门用于 docker 容器。

由于我是 docker 新手,我不确定哪一个是构建 Dockerfile 的最佳基础镜像。这似乎是一个愚蠢的问题,但如果我在多个容器上运行大量微服务,那么容器应该尽可能轻。

0 投票
1 回答
1539 浏览

docker - Docker 命令在运行容器时成功,但在 Dockerfile 上失败

我运行了一些命令,用于在 Ubuntu 14.04 上安装 Cuda 支持。为了做到这一点,我运行以下命令,这是一系列组合命令:

  • 当我在正在运行的容器上执行此操作时,即我的 Dockerfile 仅包含命令FROM ubuntu:14.04,然后我使用docker run -it <my new image name> bash它并成功!

  • 当我从 Dockerfile 执行此操作时,它会出现很多运行时错误,例如:

    调用-rc.d:策略-rc.d 拒绝执行强制重新加载。

    调用-rc.d:策略-rc.d 拒绝执行启动。

我想澄清一下 - 当我在容器上运行 bash 并逐步遵循 Dockerfile 命令时,它会成功,但如果我在 dockerfile 中执行与 RUN 命令相同的命令,使用docker build.

知道可能是什么问题以及如何解决它吗?

我想指出,我在某些地方看到人们将以下命令添加到他们的 dockerfile 中:

有什么更优雅的?运行时不是关于不同的权限docker buildvsdocker run -it吗?

0 投票
2 回答
14864 浏览

docker - dockerfile:如何使用基础镜像中的 CMD 或 ENTRYPOINT

我有几个不属于我的基础 docker 镜像(所以我无法修改它们)。但是,我正在从它们创建新图像,并安装了其他东西。

我想不通的是如何告诉 dockerfile 复制基本映像的 CMD(或 ENTRYPOINT)。像这样的东西:

我认为 CMD 命令没有任何直接的语法来做我想做的事。我想知道是否有解决方法。

0 投票
1 回答
1016 浏览

docker - 在 Docker 构建期间启动服务

我想在 Docker 构建期间启动一项服务。在构建过程完成后,我不需要此服务继续运行(或者我知道我可以为此使用 CMD 命令),但是我确实需要它运行足够长的时间来执行依赖于此服务的第二个命令正在启动和运行。

更准确地说,我正在尝试为 ejabberd XMPP 服务器编写一个 Dockerfile,它还为此服务器安装了一个模块。我正在尝试使用 ejabberdctl start 启动 ejabberd 服务器,然后使用 ejabberdctl module_install 实用程序安装模块,这取决于节点正在启动和运行。它看起来像这样:

现在我遇到了一个问题,我想出了两个可能的原因。问题是我的构建从这一行开始不起作用,因为当第二个命令试图执行时节点已关闭。我收到以下错误,这是您尝试使用 ejabberdctl 实用程序时的典型错误,但节点实际上并未启动:

与节点 ejabberd@localhost 的 RPC 连接失败

命令 '/bin/sh -c ejabberdctl start && ejabberdctl modules_update_specs && ejabberdctl module_install ejabberd_auth_http' 返回一个非零代码:3

这可能是因为服务的启动需要一点时间,比执行第二个命令所需的时间长,所以第二个命令运行到一个刚刚启动的节点。不确定这有多大可能。第二个原因可能是依赖 init.d 的服务在构建过程中无法在 Docker 中启动。

我构建容器直到导致问题的那一行,进入容器并手动执行命令,一切正常。

所以总结一下,我想在构建期间启动 ejabberd 服务器,然后使用它的控制实用程序来安装一些东西。最后一个选择是在不运行服务器的情况下手动安装模块,但是我更喜欢使用 ejabberdctl 控制实用程序来安装。