web_1 | /docker-entrypoint.sh:第99行:exec:bundle:未findapp_web_1用代码127退出

我正在尝试使用docker将现有的rails项目推送到docker容器。

我正在使用postgres数据库。

当我做了$> docker-compose up

我在日志中遇到以下错误。

 web_1 | /docker-entrypoint.sh: line 99: exec: bundle: not found app_web_1 exited with code 127 

 # Dockerfile FROM ruby:2.2.0 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp WORKDIR /myapp ADD Gemfile /myapp/Gemfile ADD Gemfile.lock /myapp/Gemfile.lock RUN gem install bundler RUN bundle install ADD . /myapp FROM postgres:9.4 #FROM library/postgres ENV POSTGRES_USER my-user-name ENV POSTGRES_PASSWORD '' ENV POSTGRES_DB app-database-name 

 # docker-compose.yml version: '2' services: db: image: postgres web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" depends_on: - db 

Dockerfile不需要两条指令,只需使用Dockerfile -compose来覆盖postgres环境图像即可。

你可以试试这个:

 # Dockerfile FROM ruby:2.2.3 # Update ubuntu and deps RUN apt-get update -qq && apt-get install -y build-essential # Install postgres dep RUN apt-get install -y libpq-dev # Install nokogiri dep RUN apt-get install -y libxml2-dev libxslt1-dev # Install JS runtime RUN apt-get install -y nodejs ENV APP_HOME /app RUN mkdir $APP_HOME WORKDIR $APP_HOME ADD Gemfile* $APP_HOME/ # Install api deps RUN bundle install --jobs 4 ADD . $APP_HOME 

现在在你docker-compose.yml (我使用v1版本),你可以尝试:

 postgres: image: postgres environment: POSTGRES_USER: my-user-name POSTGRES_PASSWORD: '' POSTGRES_DB: app-database-name web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -b '0.0.0.0'" environment: PORT: 3000 DATABASE_URL: 'postgres://postgres:@postgres:5432/postgres' ports: - '3000:3000' link: - db volumes: - .:/app