簡體   English   中英

將 Docker Rails 6 應用程序部署到 AWS ECS 時出現 RDS 相關錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM