我试图避免在我的停靠映像中导入所有类型的依赖项(通过npm或java),这样我就可以生成一个傲慢的客户端。
我使用的是openapitools/openapi发生器-cli,但是当我尝试使用它时,generate命令就找不到了。这是文档
我想做的是:
FROM openapitools/openapi-generator-cli
RUN generate结果:
Step 1/2 : FROM openapitools/openapi-generator-cli
---> 62d78bf45d59
Step 2/2 : RUN generate
---> Running in accaf10464d5
/bin/sh: 1: generate: not found然而,这是没有问题的:
docker run openapitools/openapi-generator-cli generate所谓“工作”,我的意思是,我从cli那里得到了积极的反馈,说我错过了所需的args。
对于Docker的这一部分,我的理解是否与FROM在这里的工作方式是不正确的?我认为我碰到了错误,因为FROM实际上没有运行容器,因此generator不存在。
但让我感到困惑的是,我对dotnet做了完全相同的处理,而且它运行得非常好。
FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim
RUN dotnet结果:
Step 1/2 : FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim
---> 32aef79fd915
Step 2/2 : RUN dotnet
---> Running in 1e6c04d30a82
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.发布于 2022-04-19 22:14:44
docker run openapitools/openapi-generator-cli generate
工作,因为它在容器内是等价的bash /usr/local/bin/docker-entrypoint.sh generate
因为在Dockerfile中,/usr/local/bin/docker-entrypoint.sh设置为ENTRYPOINT,因此您可以从github检查docker-entrypoint.sh,并掌握传递生成时发生的逻辑,或者简单地执行以下操作
FROM openapitools/openapi-generator-cli
RUN bash /usr/local/bin/docker-entrypoint.sh generatehttps://stackoverflow.com/questions/71931716
复制相似问题