docker不开始退出ruby

我正在尝试构buildDocker容器并启动服务器。 当我们使用docker build -t . test docker build -t . test它的创build容器成功。 当我们启动容器与docker run -d -p 3000:3000 --name railsserver test其启动退出状态0,但不能看到任何进程或任何打开的端口3000

docker ps -a

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES da70e26109b3 foodex "irb" 40 seconds ago Exited (0) 22 seconds ago admiring_heyrovsky 73d4a7ca58d0 foodex "irb" About a minute ago Created jolly_ramanujan 4594ad5ea4ce foodex "irb" 6 minutes ago Exited (0) 6 minutes ago tender_murdock 

Dockerfile

 FROM ruby RUN apt-get update -qq && apt-get install -y \ build-essential libpq-dev nodejs mysql-client libmysqlclient-dev ssh RUN mkdir -p /foodex/ WORKDIR /foodex/ ADD Gemfile Gemfile.lock / RUN bundle install #RUN source ~/.bashrc EXPOSE 3000 RUN bundle exec rails s -p 3000 -b '0.0.0.0' ADD . /foodex/ 

更新您的Dockerfile为:

 FROM ruby RUN apt-get update -qq && apt-get install -y \ build-essential libpq-dev nodejs mysql-client libmysqlclient-dev ssh COPY ./ /foodex/ WORKDIR /foodex/ RUN bundle install EXPOSE 3000 CMD ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "'0.0.0.0'"] 

并继续使用与上面相同的buildrun命令:

 docker build -t test . docker run -d -p 3000:3000 --name railsserver test 

你遇到的问题是你的bundle exec rails s命令来运行服务器,在构build过程中正在执行RUN 。 它应该推迟到CMD容器执行