问题标签 [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.
docker - 尽管在 PATH(和可执行文件)中但未找到 Docker 入口点
我正在使用以下内容创建一个简单的图像Dockerfile
在我的容器内:
因此入口点文件既在可执行文件中,PATH
又在可执行文件中;
但是跑步的时候
我知道这个 SO question,但这是关于PATH
文件权限的问题(已解决);
python - docker run 上带有 --user 选项的 Docker 入口点错误
docker run
当我只想让我的容器写为非根文件时,我发现了这个问题。
当我使用这种命令(入口点被覆盖)时,我没有任何问题:
I have no name!
这是工作,我可以使用用户帐户 x访问容器)
但是,没有像这里这样的入口点的覆盖:
我有这个错误:
编辑 1
向我询问更多信息。
bash - docker-entrypoint 脚本执行的最佳实践
我想在我的docker-entrypoint.sh
;上运行几个脚本。
我的问题是它是否有任何区别,如果有,推荐的解决方法是什么,关于以下选项:
一个。
乙。
C. _
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选项就可以正常工作了。
shell - 未从入口点脚本正确获取 Env 文件
我正在尝试从条件 entrypoint.sh 脚本中获取 .env 文件,其中一部分如下所示:
在 .env 文件中找到的环境变量的简单回显,就在上述源命令之后,输出正确的值,并且在入口点脚本中提供的操作成功执行。
但是,当我docker exec -it
在实例化的容器中执行操作时,env 文件看起来好像不是源文件。只有当我从那里再次采购时,我才能得到理想的结果。(更具体地说,env文件用于指向python的特定运行时环境。因此进入容器后,只有当我再次获取env文件时才能正确调用python)。
我究竟做错了什么?
作为参考,这些是我的 Dockerfile 的最后几行(没什么特别的):
容器实例化是使用docker-compose
yaml 完成的。
提前致谢,如果之前有人问过这个问题,我们深表歉意。
docker-entrypoint - 无法从一个容器 ping 到连接在同一网络中的另一个容器
我创建了两个容器并将它们连接到同一个网络。但是当我使用命令时:
我得到错误:
“sh:1:ping:未找到”
我使用了容器名称而不是 IP 地址,因为两者都连接到同一个网络。
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 官方镜像运行的容器),但我认为这很麻烦且没有必要。
docker - Dockerfile 入口点无法切换用户
我无法从入口点脚本将用户切换到非 root 用户。在 Dockerfile 中更改用户的用户指令有效,但我无法使用 chmod 更改权限。为了克服这个问题,我创建了entrypoint.sh
脚本来更改文件夹权限,但是当我尝试使用su
命令切换用户时,它显然不起作用,容器仍然以 root 身份运行。
Dockerfile
入口点.sh 文件
无论我做什么,我都无法从 entrypoint.sh 脚本切换用户。
我的情况是以非 root 用户身份运行容器。
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 处理。
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"]
在原始图像中是相同的。