[英]Deploying a Rails 5 app to EC2- RDS DB Instance connectivity error
[英]RDS related error when deploying a Docker Rails 6 app to AWS ECS
我正在嘗試將 Rails 6 應用程序部署到 AWS ECS。
部署失敗,我收到以下錯誤:
health_check 失敗:無法加載插件 http:加載共享庫 lib/mariadb/plugin/http.so 時出錯:沒有這樣的文件或目錄
寶石文件
gem 'rails', '~> 6.0.0'
gem 'mysql2'
Gemfile.lock
mysql2 (0.5.3)
rails (6.0.3.6)
我沒有在我的應用程序中使用 MariaDB,但根據mysql2 gem 作者的說法,可能有必要添加 MariaDB dependencies 。
您可能需要安裝 package,例如 libmariadb-dev、libmysqlclient-dev、mysql-devel 或 default-libmysqlclient-dev; 請參閱您的發行版的 package 指南以找到特定的 package。 我們看到的最常見問題是擁有庫文件 libmysqlclient.so 但缺少 header 文件 mysql.h 的用戶——仔細檢查您是否安裝了 -dev 包。
Dockerfile
###############################
FROM ruby:2.6.3-alpine
ARG RAILS_ENV
ENV RAILS_ENV ${RAILS_ENV}
RUN apk add --update --no-cache \
build-base \
openssl \
mysql-dev \
mariadb-dev \
git \
tzdata && \
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
WORKDIR /app
ADD Gemfile* /app/
RUN gem install --no-document bundler
RUN bundle install -j4 --retry 3 \
&& rm -rf /usr/local/bundle/cache/*.gem \
&& find /usr/local/bundle/gems/ -name "*.c" -delete \
&& find /usr/local/bundle/gems/ -name "*.o" -delete
# Add the Rails app
ADD . /app
WORKDIR /app
CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]
我構建了我的應用程序:
docker-compose build --no-cache
任何幫助將不勝感激。
該錯誤與 DB 地址格式有關。
為了使它工作,我刪除了http://
前綴和 DB 地址環境變量的尾隨/
。
我變了:
DB_HOST=http://abcdef-rds.xyz.ap-northeast-1.rds.amazonaws.com/
至:
DB_HOST=abcdef-rds.xyz.ap-northeast-1.rds.amazonaws.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.