问题标签 [docker-entrypoint]

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 回答
3823 浏览

bash - 构建后将 ENTRYPOINT 更改为容器

我有一个 Dockerfile,它的结尾是:

构建此容器后,我想运行它,但我不想执行此 bash 脚本 (run-tests.sh),而是想在容器内打开一个终端窗口来检查文件系统。

如果没有 ENTRYPOINT 行,我可以这样做:

我可以检查容器的文件。

但是,由于存在 ENTRYPOINT,因此该脚本将运行,我无法检查容器的文件。

我有什么办法可以进入容器窥探吗?

0 投票
2 回答
557 浏览

bash - 检查非守护程序 Docker 容器,在它完成运行后

我有一个创建的容器

因为它没有在分离模式下运行,我如何检查容器?我想要做的是防止容器“自动关闭”,以便在容器完成后检查容器的文件系统。

cdt-tests 的 Dockerfile 如下所示:

我知道要使用的技巧,覆盖入口点并检查容器,如下所示:

但是,这不适用于我当前的用例,因为我想在@run-tests.sh 完成后检查容器!

所以我有两个问题:

  1. 如何在非守护程序容器完成运行后检查它的文件系统?
  2. 如何获取为非守护程序容器创建的容器的容器 ID(不使用 $(docker ps))。

如果我做 a docker ps -a,我会看到:

所以我们可以看到 cdt-tests 在那里,即使它不是一个守护进程。

所以我们尝试检查它,如下所示:

但我们得到一个错误:

该怎么办?

0 投票
1 回答
1101 浏览

docker - 关于Supervisor和tail over Apache的error.log的解释

在创建 Docker 容器时,要同时拥有apache2 error.log并通过docker logs -f <my_container>我使用一个容器,该容器运行supervisor作为入口点,并具有以下配置:

这工作正常,但我不明白为什么如果我[program:apache]用这个替换会话这不起作用:

也就是说:如果没有明确设置stderrstdout日志文件,该docker logs -f <my_container>命令不起作用,但在容器内tail -f /var/logs/apache2/access.log并且tail -f /var/logs/apache2/error.log工作正常。

有人可以向我解释为什么supervisor并且docker logs -f <my_container>由于这种配置更改而有两种不同的作品吗?

谢谢

0 投票
1 回答
966 浏览

postgresql - 如果 ENTRYPOINT 未完成,Dockerfile 不会运行 CMD

我正在尝试运行一个运行 PostgreSQL 的 Dockerfile,然后向其中添加一些表。

这是我的 Dockerfile:

入口点没有完成,因为它运行 postgres 服务器。例如,如何在运行 ENTRYPOINT 20 秒后运行 CMD,但没有完成 ENTRYPOINT?

是否可以?

0 投票
2 回答
22110 浏览

docker - 在 docker-compose 中使用入口点运行自定义脚本

我修改了https://hub.docker.com/_/solr/上给出的docker-compose.yml文件,在. 修改后的文件如下:volumesentrypoint

我需要在入口点启动之前运行这个“init.sh”,以便在容器中准备我的文件。

但我收到以下错误:

错误:对于 solr_solr_1 无法启动服务 solr:oci 运行时错误:container_linux.go:247:启动容器进程导致“exec:\”init.sh\”:在 $PATH 中找不到可执行文件”

早些时候我从这里发现了 neo4j 中的官方图像挂钩。我也可以在这里使用类似的东西吗?

更新 1:从下面的评论中,我意识到 dockerfile 设置是WORKDIR /opt/solr由于executable file not found in $PATH. 所以我通过使用提供入口点的绝对路径来进行测试/init.sh。但这也会产生错误,但会产生不同的错误:

standard_init_linux.go:178: exec 用户进程导致“exec 格式错误”

0 投票
1 回答
99 浏览

docker - 从 docker 容器访问主机的文件夹

我在主机的这个目录中有一个文件夹/files/username/username是可变的。

这是我的 Dockerfile 的 CMD 指令:

我想获取/files/username/文件夹的内容entrypoint.sh。我可以将用户名变量作为环境变量,如下所示:

通过这种方式是否可以访问主机设备的文件夹entrypoint.sh

0 投票
1 回答
5501 浏览

python - 如何使用 docker run 将本地文件作为参数传递?

我有一个像这样的 Dockerfile:

“post”命令可以在没有参数的情况下正常运行我的代码。我的问题是如何让 docker 容器在运行时除本地文件之外,因为它可能会改变。

这是我运行脚本的命令,但说没有这样的文件或目录 data/output.xml

我也试过这个没有运气

感谢您的任何帮助!

0 投票
1 回答
2101 浏览

tomcat - docker compose 不启动容器内的服务

我实际上在使用 docker-compose 启动 tomcat 服务时遇到了麻烦。

这是docker-compose.yml我正在使用的

这是Dockerfile我在 cs_tomcat 中创建的,

当我使用以下单独运行此 docker 文件时,一切正常

当我使用以下命令构建和启动 docker 容器docker-compose时,容器启动,但 tomcat 服务没有启动。

这是我的docker-entrypoint.sh文件

任何人都可以在这里看到任何错误吗?对此的任何帮助都将是非常可观的。

0 投票
1 回答
985 浏览

php - Symfony 在我运行 composer 命令时传递 -env 参数

当我为我的项目创建一个 docker 入口点脚本时,我运行:

但这会引发一个异常,即:

致命错误:未捕获的 Symfony\Component\Debug\Exception\ClassNotFoundException:试图从命名空间“Ajgl\Twig\Extension\SymfonyBundle”加载类“AjglBreakpointTwigExtensionBundle”。

初始化捆绑包的代码AppKernel.php是:

这个包我使用 intdevtest它使用的环境。我构建的容器用于生产。

因此,我想以某种方式让作曲家执行时的 ScriptHandlers 运行在一个prod环境而不是一个环境dev中,以抑制错误消息?

0 投票
3 回答
16542 浏览

docker - Docker 入口点和 cmd 一起

我尝试使用入口点和 cmd 设置 Docker。

但是入口点脚本没有停止...... cmd 命令没有启动

这是我的脚本:

脚本总是回显 14,我只想要一个,然后从 dockerfile 执行 cmd 命令