gpt4 book ai didi

ruby-on-rails - 在谷歌云上运行的 Rails 5 应用程序的 ConnectionBad 问题通过套接字运行到谷歌云 SQL 实例

转载 作者:行者123 更新时间:2023-11-29 13:09:19 26 4
gpt4 key购买 nike

当我使用谷歌云运行服务时,我的 docker 容器将返回错误:

PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我已经在相关项目上启用了cloud sql admin api。我通过 ssh 进入了我正在使用 Google Cloud Shell 中可用的 GCP 服务运行的实例,并检查了 /var/run/postgresql/.s.PGSQL.5432。什么都没有。 Google cloud run docks 说要将套接字指定到 /cloudsql/ 下,但那里似乎也不存在套接字。

云 sql/run 未解决问题或问题跟踪器中没有任何内容表明这应该是一个问题。

部署命令使用 --add-cloudsql-instances 标志没有错误,所以我相信那里应该没有问题。

相关database.yml部分:

staging:
adapter: postgresql
encoding: utf8
pool: 5
timeout: 5000
database: project_staging
username: project_staging
password: <%= Rails.application.credentials[:db_password] %>
socket: "/cloudsql/my-project-name:asia-northeast1:project-database-name/"

设置容器的 Dockerfile -

FROM ruby:2.6.2

ARG environment
// Bunch of env code

RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /myapp
WORKDIR /usr/src/app
RUN gem install bundler
COPY Gemfile Gemfile.lock ./
ENV BUNDLE_FROZEN=true
RUN bundle install
COPY . .

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

ENV RAILS_LOG_TO_STDOUT=true
我需要在这里安装的不仅仅是 postgresql-client 吗?

几乎肯定是无关紧要的,但是开始脚本:

cd /usr/src/app

bundle exec rake db:create

bundle exec rake db:migrate

# Do some protective cleanup
> log/${RAILS_ENV}.log
rm -f tmp/pids/server.pid

bundle exec rails server -e ${RAILS_ENV} -b 0.0.0.0 -p $PORT

老实说,我在这里感到困惑。是配置问题吗?云运行问题?我错过了某种包裹吗?我希望它在启动时能够毫无问题地连接到套接字。

最佳答案

我已经按照这个 Medium 指南(部分 1234)使用 Ruby 创建 Cloud Run 并将其连接到 Cloud SQL 实例,没有任何问题,你能尝试将它与您的部署进​​行比较,甚至尝试按照步骤查看您所做的是否与他们在那里解释的内容不同?

此外,如果有帮助,我在另一个 post 中发现了一个类似的案例即使未部署在 Cloud Run 中,他们也面临同样的问题,这可能会有所帮助。另一个Medium post也解决了同样的问题并给出了一套解决方案。

关于ruby-on-rails - 在谷歌云上运行的 Rails 5 应用程序的 ConnectionBad 问题通过套接字运行到谷歌云 SQL 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57005227/

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