Ruby 获取Errno::enoint:在docker中创建数据库时,在padrino api中没有这样的文件或目录-createdb

Ruby 获取Errno::enoint:在docker中创建数据库时,在padrino api中没有这样的文件或目录-createdb,ruby,postgresql,docker-compose,padrino,Ruby,Postgresql,Docker Compose,Padrino,我在帕德里诺是个新手,所以我已经为此挣扎了一段时间,这真的阻碍了我 我想做的是,让我的padrino项目变得更加成熟,让我的前端同事可以使用它,这样他们就不需要花太多时间来安装机器了 当我尝试运行docker compose run web bundle exec rake sq:create任务时,出现了问题,该任务引发以下异常: => Creating database 'my_database_dev' rake aborted! Errno::ENOENT: No such fil

我在帕德里诺是个新手,所以我已经为此挣扎了一段时间,这真的阻碍了我

我想做的是,让我的padrino项目变得更加成熟,让我的前端同事可以使用它,这样他们就不需要花太多时间来安装机器了

当我尝试运行
docker compose run web bundle exec rake sq:create
任务时,出现了问题,该任务引发以下异常:

=> 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:
和我的docker一起写文件

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:pg_user@postgres.local:2345/my_database_dev

提前谢谢你

就在几个小时前,我遇到了同样的问题。此错误,
Errno::enoint:没有这样的文件或目录-createdb
,表示您的
web
容器找不到由Postgres提供的脚本createdb。要解决此问题,请将
postgresql客户端
添加到Dockerfile

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client
重新构建您的
web
容器

docker-compose build web
并重新运行数据库创建和迁移

docker-compose run web bundle exec rake sq:create
docker-compose run web bundle exec rake sq:migrate

几个小时前我遇到了同样的问题。此错误,
Errno::enoint:没有这样的文件或目录-createdb
,表示您的
web
容器找不到由Postgres提供的脚本createdb。要解决此问题,请将
postgresql客户端
添加到Dockerfile

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev postgresql-client
重新构建您的
web
容器

docker-compose build web
并重新运行数据库创建和迁移

docker-compose run web bundle exec rake sq:create
docker-compose run web bundle exec rake sq:migrate