使用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
从安全的角度来看,似乎需要明确地将其配置到环境变量中。