bash - 来自Alpine的Docker phpunit:3.7输入shell CLI sh或bash

标签 bash shell docker phpunit command-line-interface

我这样输入alpine:3.7的shell CLI

docker run -it -v $PWD:/app alpine:3.7 /bin/sh

一切正常,但是当我尝试在此图像中输入shell cli phpunit/phpunit时,可以在其中找到它的Dockerfile:

FROM alpine:3.7



所有这些尝试均无效:
docker run -it -v $PWD:/app phpunit/phpunit /bin/sh
docker run -it -v $PWD:/app phpunit/phpunit /bin/bash
docker run -it -v $PWD:/app phpunit/phpunit sh
docker run -it -v $PWD:/app phpunit/phpunit bash

我只得到二进制文件的打印内容。在我看来,即使我指定了/ bin / sh,它也被视为phpunit应用程序的参数,而不是要运行的应用程序。

如何在phpunit/phpunit容器中运行Shell CLI?

最佳答案

phpunit / phpunit镜像将phpunit命令定义为自定义入口点(Dockerfile#L66)。因此,您的参数(例如/bin/sh)被视为phpunit的参数。如果要运行shell而不是phpunit,则应覆盖入口点。这是一种方法。

docker container run -it -v $PWD:/app --entrypoint "" phpunit/phpunit sh

关于bash - 来自Alpine的Docker phpunit:3.7输入shell CLI sh或bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523528/

相关文章:

ruby - Ruby 1.8 的 Shellwords.shellescape 实现

asp.net - 如何将Visual Studio ASP.NET 5项目发布到Docker Hub?

ruby - 正确拉动 edxops/论坛的方式

docker - 无法从 Container Optimized Compute Engine 的私有(private) GCR 中提取镜像

linux - 确定 Web 服务器的根文件夹

linux - 从脚本中运行命令时的 Bash 进度条

bash - 阻止bash脚本在终端中输出

c - 简单的 Linux shell 。停止命令

linux - 如何用逗号而不是空格分割列表

ruby-on-rails - Docker: chmod: 无法访问 'chmod' : 没有这样的文件或目录