mkdir -p $ RAILS_ROOT'返回一个非零的代码:1

我正在遵循这个指南,而且我在Dockerconfiguration部分的指南的中途。

我在我的Odroid上运行Ubuntu 16。

我的Dockerfile给我一个错误。 这是我正在使用的…

# Base image: FROM ruby:2.4.0 # Install dependencies #RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs # Set an environment variable where the Rails app is installed to inside of Doc$ ENV RAILS_ROOT /home/john/myapp RUN mkdir -p $RAILS_ROOT # Set working directory, where the commands will be ran: WORKDIR $RAILS_ROOT # Gems: COPY Gemfile Gemfile COPY Gemfile.lock Gemfile.lock RUN gem install bundler RUN bundle install 

这是我得到的错误。

 Step 2/12 : ENV RAILS_ROOT /home/john/myapp ---> Using cache ---> 67905f8bb273 Step 3/12 : RUN mkdir -p $RAILS_ROOT ---> Running in 4d368a5e6181 standard_init_linux.go:187: exec user process caused "exec format error" ERROR: Service 'app' failed to build: The command '/bin/sh -c mkdir -p $RAILS_ROOT' returned a non-zero code: 1 

我不知道为什么$ RAILS_ROOT给我一个错误。

我在我的Odroid上运行Ubuntu 16。

如果我没有弄错,ODROID是ARM CPU设备。 虽然Docker本身与ARM兼容,但您也需要使用基本映像。

有了这个说法,看起来像官方Ruby映像的基于ARM的映像只存在于2.4.1: https : //github.com/docker-library/official-images/pull/3078 。 您可以尝试将基础映像升级到2.4.1,看看会发生什么。

但是,即使官方库可能在registry中具有基于ARM的映像,但我不太确定是否有Docker版本支持为同一个存储库交换arch。 我找不到任何提及多拱形图像的参考。