使用docker-compose时,无法迁移postgresql

使用docker-compose构建rails环境时,无法迁移postgresql。

设定文件如下

version: "3"
services:
  db:
    image: postgres
    volumes:
      - pgdatavol:/var/lib/postgresql/data
  web:
    build: .
    command: bundle exec rails s -p 3000 -b "0.0.0.0"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
volumes:
  pgdatavol:   
default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  username: postgresql
  password: 

在这之后启动Docker容器

请用Docker Compose运行以下命令:web rake db:create

使用Docker Compose 运行命令 “docker-compose run web rake db:migrate” 进行数据库迁移。

那么出现了以下错误的内容

ConnectionBad: could not translate host name "db" to address: Name or service not known

有点不太清楚,但是主机的数据库没有被识别出来。


参考了上面的文章后,我进行了以下设定文件的修改。

version: "3"
services:
  db:
    image: postgres
  environment:
      POSTGRES_USER: 'postgresql'
      POSTGRES_PASSWORD: 'postgresql-pass
    volumes:
      - pgdatavol:/var/lib/postgresql/data
  web:
    build: .
    command: bundle exec rails s -p 3000 -b "0.0.0.0"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
volumes:
  pgdatavol:   

default: &default
  adapter: postgresql
  encoding: unicode
  host: db
  username: postgresql
  password: postgresql-pass

从安全的角度来看,似乎需要明确地将其配置到环境变量中。

广告
将在 10 秒后关闭
bannerAds