首页 > 解决方案 > Docker - 在 $PATH 中找不到可执行文件

问题描述

在我的 Ubuntu 服务器中,我有以下目录结构:/home/docker/groovy。在这个位置,我有简单的 groovy 文件。在 Docker 上,它正在运行容器groovy_repo_1

进入 groovy 目录后,我想在容器上执行这样的脚本:

docker exec groovy_repo_1 docker.groovy

输出:

rpc error: code = 2 desc = oci runtime error: exec failed: 
container_linux.go:247: starting container process caused "exec: 
\"docker.groovy\": executable file not found in $PATH"

为什么会这样?

标签: dockerubuntugroovynexus

解决方案


Docker 使用长寿命的不可变图像和短寿命的容器。如果您有要运行的脚本或任何其他类型的程序,最佳实践通常是将其打包到映像中,然后从其运行容器。已经有一个标准的groovy 映像,因此您的 Dockerfile 可以是基本的:

FROM groovy:2.6
RUN mkdir /home/groovy/scripts
WORKDIR /home/groovy/scripts
COPY docker.groovy .
CMD ["groovy", "docker.groovy"]

您可以在本地开发和测试您的应用程序,然后使用 Docker 进行部署。尤其是如果您正在查看像docker 这样的多主机部署解决方案,那么重要的是映像是独立的并且其中包含脚本。


推荐阅读