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'"]
并继续使用与上面相同的build
和run
命令:
docker build -t test . docker run -d -p 3000:3000 --name railsserver test
你遇到的问题是你的bundle exec rails s
命令来运行服务器,在构build过程中正在执行RUN
。 它应该推迟到CMD
容器执行