我有一个带有这个命令的 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"]
它构建正确,但是当我尝试运行 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
…没有任何效果
原文由 Luiz E. 发布,翻译遵循 CC BY-SA 4.0 许可协议
/usr/src/app 可能不在您的路径中,因此您应该包含脚本的完整路径。您还需要确保您的 entrypoint.sh 是可执行的,docker 将完全按照您的构建主机上的权限复制权限,因此根据您的情况可能不需要此步骤。