2016-10-06 9 views
0

私はpadrinoでかなり新しいので、しばらく苦労しており、本当に私をブロックしています。Errno :: ENOENTの取得:ドッカーでデータベースを作成するときにpadrino APIにcreatedbというファイルがありません

私がしようとしていることは、私のフロントエンドの同僚に利用できるようにするために私のpadrinoプロジェクトをドローすることです。彼らはマシンをセットアップするのに多くの時間を費やす必要はありません。

私は次の例外を発生させdocker-compose run web bundle exec rake sq:createタスクを実行しようとすると、問題が来る:だけでも、私の中でdockerized Postgresの画像に対応DATABASE_URL=postgres://pg_pass:[email protected]:2345/my_database_devを使用して、私のドッキングウィンドウのマシン上で発生したことを除い

=> Creating database 'my_database_dev' 
rake aborted! 
Errno::ENOENT: No such file or directory - createdb 
/usr/local/bundle/gems/padrino-gen-0.13.2/lib/padrino-gen/padrino-tasks/sql-helpers.rb:18:in `spawn' 
/usr/local/bundle/gems/padrino-gen-0.13.2/lib/padrino-gen/padrino-tasks/sql-helpers.rb:18:in `create_db' 
/usr/local/bundle/gems/padrino-gen-0.13.2/lib/padrino-gen/padrino-tasks/sequel.rb:52:in `block (2 levels) in <top (required)>' 
/usr/local/bundle/gems/rake-11.3.0/exe/rake:27:in `<top (required)>' 
/usr/local/bin/bundle:22:in `load' 
/usr/local/bin/bundle:22: 

をローカルの.envファイルはすべて期待どおりに動作しますので、Dockerfileに何かがないという問題があると思います。私Dockerfileはこのようになります

FROM ruby:2.2.5 
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev 
RUN mkdir /app 
WORKDIR /app 
ADD Gemfile /app/Gemfile 
ADD Gemfile.lock /app/Gemfile.lock 
RUN bundle install 
ADD . /app 

と私のドッキングウィンドウ・コンファイル

version: '2' 
services: 
db: 
    image: postgres:latest 
    ports: 
    - "2345:5432" 
    environment: 
    - POSTGRES_PASSWORD=pg_pass 
    - POSTGRES_USER=pg_user 
web: 
    build: . 
    command: bundle exec padrino s -p 3000 -h '0.0.0.0' 
    ports: 
    - "3000:3000" 
    volumes: 
    - .:/app 
    depends_on: 
    - db 
    links: 
    - db:db 
    environment: 
    - DATABASE_URL=postgres://pg_pass:[email protected]:2345/my_database_dev 

事前にありがとうございます!

答えて

3

数時間前と全く同じ問題が発生しました。このエラー、Errno::ENOENT: No such file or directory - createdbは、webコンテナが、Postgresが提供するスクリプトcreatedbを見つけることができないことを示しています。この問題を解決するには、

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client 

docker-compose build web 

をごwebコンテナを再構築し、DB作成に&移行を再実行して、あなたのDockerfileにpostgresql-clientを追加

docker-compose run web bundle exec rake sq:create 
docker-compose run web bundle exec rake sq:migrate 
関連する問題