gpt4 book ai didi

postgresql - Docker似乎是在服务器上迁移数据库而不是在RDS上迁移

转载 作者:行者123 更新时间:2023-11-29 13:57:02 32 4
gpt4 key购买 nike

如果我的问题看起来微不足道,我深表歉意,但在部署我的 Rails 应用程序时我完全是个菜鸟。

我正尝试在 Elastic Beanstalk 上使用 Docker 部署我的应用程序。但是部署在数据库迁移上失败。我收到这条消息:Docker 容器在启动后意外退出:目录
服务器是否在本地运行并接受
Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?
我认为 docker 正在尝试在本地连接到 postgresql 是否正确?

我不知道如何告诉 docker 连接到 RDS,因为我的 database.yml 文件已经指向我的 rds 数据库。这也是我的 dockerfile:

FROM seapy/ruby:2.2.0

RUN apt-get update

# Install nodejs
RUN apt-get install -qq -y nodejs

# Intall software-properties-common for add-apt-repository
RUN apt-get install -qq -y software-properties-common

# Install Nginx.
RUN add-apt-repository -y ppa:nginx/stable
RUN apt-get update
RUN apt-get install -qq -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx

# Add default nginx config
ADD nginx-sites.conf /etc/nginx/sites-enabled/default

# Install foreman
RUN gem install foreman

# Install the latest postgresql lib for pg gem
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
apt-get update && \
DEBIAN_FRONTEND=noninteractive \
apt-get install -y --force-yes libpq-dev
# Install paperclip dependencies
RUN apt-get install -qq -y ImageMagick

# Copy gemfile and bundle in temporary
WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install -j 4

# Copy app and precompile assets
RUN mkdir /app
ADD . /app
WORKDIR /app
ENV RAILS_ENV production
RUN bundle exec rake assets:precompile

# Nginx
ADD nginx-sites.conf /etc/nginx/sites-enabled/default

EXPOSE 80
CMD bundle exec rake db:migrate && foreman start -f Procfile

还有我的 database.yml 文件:

production:
adapter: postgresql
encoding: utf-8
database: <%= ENV['RDS_DATABASE_NAME'] %>
username: <%= ENV['RDS_DATABASE_USERNAME'] %>
password: <%= ENV['RDS_DATABASE_PASSWORD'] %>
hostname: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>

非常感谢您的帮助,但我还找不到相关的修复程序,

最好的,

托马斯

最佳答案

对于那些可能遇到同样问题的人,这与 docker 无关,而是与 active_records 相关,这意味着您的 Rails 应用程序无法连接到您的 RDS 数据库。在我的例子中,问题是在 database.yml 文件中指定了“主机名”而不是“主机”。

关于postgresql - Docker似乎是在服务器上迁移数据库而不是在RDS上迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770374/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com