私は、AWS ECS上でリポジトリ、タスク、およびクラスタ管理を使用するセットアップアプリケーションを用意しています。 私Dockerfile
は、これは私がAWS ECSリポジトリに設定したリポジトリですAWS ECS - Railsコンテナがmysqld.sock経由でリンクされたコンテナmysqlに接続できません
FROM ruby:2.4.1
ENV LANG C.UTF-8
RUN apt-get update && \
apt-get install -y nodejs \
vim \
mysql-client --no-install-recommends && rm -rf /var/lib/apt/lists/*
WORKDIR /tmp
ADD ./Gemfile Gemfile
ADD ./Gemfile.lock Gemfile.lock
RUN bundle install
ENV APP_ROOT /workspace
RUN mkdir -p $APP_ROOT
WORKDIR $APP_ROOT
COPY . $APP_ROOT
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0", "-e", "production"]
です。
rails-app
から互いに
にlinked
ある私は二つの容器rail-app
とmysql
を設定しているタスクの先で
、私はRDS
MySQLインスタンスに接続しようとしていますが、その投げ、次のエラーとして、私が持っています私が必要と思わない接続をサポートするためにmysql
コンテナを追加しました
クラスタに追加されたタスクでアプリケーションを実行すると、service
となります。両方のコンテナは正常に動作しますが、rails-app
コンテナにはこのエラーがあります。
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)
私はdocker exec -it containerid bash
下rails c production
を実行すると、それが正常に動作し、適切にDBを接続しています。ここでもアクティブなレコードをテストすることができます
mysqlの量をレールアプリケーションと共有するためのソリューションを私に提供してください。私はここで自分の質問に答えるのです