ruby-on-rails - Rails 在 docker 中找不到 PSQL DB
问题描述
我正在docker中运行一个rails应用程序。每当我关闭容器并重新启动它时,我都会FATAL: database "my_app_dev" does not exist
手动重新创建它并运行迁移。我一直无法找到一个可行的解决方案。这是我的码头文件:
FROM ruby:2.5.1
RUN \
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" >> /etc/apt/sources.list.d/pgdg.list && \
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
apt-get update -qq && \
curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
apt-get install -y build-essential libssl-dev libssl-dev openssl \
nodejs postgresql-client-9.6 default-jre python python-dev python-pip groff-base vim && \
apt-get clean && \
mkdir /my_app
WORKDIR /my_app
COPY Gemfile Gemfile
RUN bundle check || bundle install
COPY . /cider
CMD ["rails", "server", "-b", "0.0.0.0", "-p", "3000"]
码头工人-compose.yml
version: '3'
services:
web:
build: .
container_name: my-web
tty: true
stdin_open: true
volumes:
- app_sync:/app:nocopy
- node_modules:/app/node_modules
ports:
- '127.0.0.1:3000:3000'
depends_on:
- db
env_file:
- .env
db:
image: postgres:9.6
ports:
- '127.0.0.1:5435:5432'
volumes:
- pg-data:/var/lib/postgrsql/data
volumes:
node_modules:
pg-data:
driver: local
app_sync:
external: true
谢谢。
解决方案
推荐阅读
- python - PyQt5 删除按钮
- angular - 如何在 mat-autocomplete 组件中实现滚动数据加载,角度?
- angular - 仅在单击按钮时才需要设置角度
- javascript - 信用卡到期日有斜线问题
- node.js - mqtt - 一次性订阅一个主题,等待一条消息然后立即取消订阅是个好主意吗?
- python - 有没有更好的方法来将此算法应用于数据帧数据?
- html - 导入 Bootstrap 时 HTML 工具提示不起作用
- sql - 连接表或联合表
- flutter - 从 Flutter 中的 Map 中按键获取值
- javascript - elastic - 根据嵌套数组中的字段过滤文档并检索该嵌套字段值