首页 > 解决方案 > 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

谢谢。

标签: ruby-on-railsdockerdocker-compose

解决方案


推荐阅读