问题标签 [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 投票
3 回答
10250 浏览

docker - 尽管在 PATH(和可执行文件)中但未找到 Docker 入口点

我正在使用以下内容创建一个简单的图像Dockerfile

在我的容器内:

因此入口点文件在可执行文件中,PATH 在可执行文件中;

但是跑步的时候

我知道这个 SO question,但这是关于PATH文件权限的问题(已解决);

0 投票
1 回答
575 浏览

python - docker run 上带有 --user 选项的 Docker 入口点错误

docker run当我只想让我的容器写为非根文件时,我发现了这个问题。

当我使用这种命令(入口点被覆盖)时,我没有任何问题:

I have no name!这是工作,我可以使用用户帐户 x访问容器)

但是,没有像这里这样的入口点的覆盖:

我有这个错误:

编辑 1

向我询问更多信息。

0 投票
1 回答
904 浏览

bash - docker-entrypoint 脚本执行的最佳实践

我想在我的docker-entrypoint.sh;上运行几个脚本。

我的问题是它是否有任何区别,如果有,推荐的解决方法是什么,关于以下选项:

一个

C. _

0 投票
1 回答
412 浏览

docker - Docker -it 选项不适用于 Dockerfile 中的 ENTRYPOINT 或 CMD

我是 Docker 新手,当我使用 -it 选项运行 docker 映像时,docker 容器完成运行,回显“test”,如我的 docker 文件中所示,并以零退出。预期的行为应该是 docker 保持打开容器的虚拟终端: docker run -it test 这是我的 Docker 文件:

我尝试了 CMD 和 ENTRYPOINT,以及 shell 形式和 exec 形式,行为是相同的。但是,如果我将docker文件中的CMD替换为RUN,-it选项就可以正常工作了。

0 投票
2 回答
1672 浏览

shell - 未从入口点脚本正确获取 Env 文件

我正在尝试从条件 entrypoint.sh 脚本中获取 .env 文件,其中一部分如下所示:

在 .env 文件中找到的环境变量的简单回显,就在上述源命令之后,输出正确的值,并且在入口点脚本中提供的操作成功执行。

但是,当我docker exec -it在实例化的容器中执行操作时,env 文件看起来好像不是源文件。只有当我从那里再次采购时,我才能得到理想的结果。(更具体地说,env文件用于指向python的特定运行时环境。因此进入容器后,只有当我再次获取env文件时才能正确调用python)。

我究竟做错了什么?

作为参考,这些是我的 Dockerfile 的最后几行(没什么特别的):

容器实例化是使用docker-composeyaml 完成的。

提前致谢,如果之前有人问过这个问题,我们深表歉意。

0 投票
1 回答
109 浏览

docker-entrypoint - 无法从一个容器 ping 到连接在同一网络中的另一个容器

我创建了两个容器并将它们连接到同一个网络。但是当我使用命令时:

我得到错误:

“sh:1:ping:未找到”

我使用了容器名称而不是 IP 地址,因为两者都连接到同一个网络。

0 投票
2 回答
140 浏览

docker - 官方 nginx 容器启动后运行 uwsgi?

我只是写了一个自定义的容器 dockerfile 包括CMD["uwsgi", "--ini", "uwsgi.ini"]基于 nginx 官方镜像

我看到CMD["nginx", "-g", "daemon off"]这个 nginx 官方镜像的 Dockerfile 末尾有一个。

这应该意味着在容器启动时启动 nginx。所以我CMD["uwsgi", "--ini", "uwsgi.ini"]的 dockerfile 将覆盖它,因此容器将立即退出。我应该如何不覆盖它并使 nginx 和 uwsgi 都工作?

我用谷歌搜索了很多,但这些解决方案都不是基于 nginx 官方图像。显然我可以为 uwsgi 运行另一个容器并将其连接到 nginx 容器(即由 nginx 官方镜像运行的容器),但我认为这很麻烦且没有必要。

nginx 官方图片在这里

0 投票
2 回答
8346 浏览

docker - Dockerfile 入口点无法切换用户

我无法从入口点脚本将用户切换到非 root 用户。在 Dockerfile 中更改用户的用户指令有效,但我无法使用 chmod 更改权限。为了克服这个问题,我创建了entrypoint.sh脚本来更改文件夹权限,但是当我尝试使用su命令切换用户时,它显然不起作用,容器仍然以 root 身份运行。

Dockerfile

入口点.sh 文件

无论我做什么,我都无法从 entrypoint.sh 脚本切换用户。

我的情况是以非 root 用户身份运行容器。

0 投票
1 回答
897 浏览

php - Php-fpm 可以处理 cli 脚本吗?官方 docker php 内部发生了什么?

我正在为我的 php 网站使用官方 Docker Php-fpm ( https://github.com/docker-library/php/blob/master/7.2/alpine3.8/fpm/Dockerfile ) 和官方 Nginx 映像。我已将 Nginx 配置为通过端口 9000 与 php-fpm 通信。下面给出了 docker 的入口点。

您可以看到,当我们尝试执行类似的命令时docker exec -it container whoami,它的前缀为php-fpm.

所以我的问题是当我传递一个 PHP cli 脚本时,例如docker exec -it container composer install它是如何解释的?是否composer install由 php-fpm 或 php-cli (/usr/local/bin/php) 处理?

据我所知,composer 是一个 cli 脚本,我安装如下,应该由 php-cli 处理。

0 投票
1 回答
4013 浏览

docker - Docker:Entrypoint 的覆盖涉及 CMD 规范?

这是一个纯粹出于好奇的问题:

我必须个性化一个 Docker 映像,特别是这是我的 dockerfile 的摘录:

并且my-entrypoint.sh是:

原始图像PHP-FPM-ALPINE具有命令

我的问题是,当我运行这个图像时(好吧,我们正确运行容器,而不是图像,我知道)默认命令没有传递给my-entrypoint.sh,实际上输出是:

也就是说 ENTRYPOINT 没有收到默认命令php-fpm,所以主进程自动停止。

但是如果我修改 dockerfileCMD在最后添加:

一切顺利(即 CMD 被传递到入口点):

最后我的问题:

为什么我必须重新声明CMD ["php-fpm"]如果我更改ENTRYPOINT指令?

请注意,CMD ["php-fpm"]在原始图像中是相同的。