没有find入口点文件

我用这个命令有一个docker镜像:

FROM ruby:2.4-alpine WORKDIR /usr/src/app COPY Gemfile /usr/src/app/Gemfile COPY Gemfile.lock /usr/src/app/Gemfile.lock RUN bundle config build.nokogiri --use-system-libraries RUN bundle install --without development test VOLUME /state COPY . /usr/src/app/ ENTRYPOINT ["api-entrypoint.sh"] CMD ["foreman", "start"] 

它build立正确,但是当我尝试运行bash,例如,我得到这个container_linux.go:247: starting container process caused "exec: \"api-entrypoint.sh\": executable file not found in $PATH" docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"api-entrypoint.sh\": executable file not found in $PATH".

我试着复制入口点文件,给它可执行权限以及与CMD …没有任何工作

/ usr / src / app可能不在你的path中,所以你应该包含脚本的完整path。 您还需要确保您的entrypoint.sh是可执行文件,docker将完全按照它们在生成主机上的权限复制权限,因此根据您的scheme可能不需要此步骤。

 FROM ruby:2.4-alpine WORKDIR /usr/src/app COPY Gemfile /usr/src/app/Gemfile COPY Gemfile.lock /usr/src/app/Gemfile.lock RUN bundle config build.nokogiri --use-system-libraries RUN bundle install --without development test VOLUME /state COPY . /usr/src/app/ RUN chmod 755 api-entrypoint.sh ENTRYPOINT ["/usr/src/app/api-entrypoint.sh"] CMD ["foreman", "start"]