【发布时间】:2017-12-04 22:14:40
【问题描述】:
我在 AWS ECS 上设置了应用程序,包括存储库、任务和集群管理。
我的Dockerfile 是
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"]
这是我在 AWS ECS 存储库上设置的存储库。
在任务目的地我已经设置了两个容器rail-app和mysql,它们彼此是linked
从rails-app,我正在尝试连接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 时,它运行良好并正确连接数据库。在这里我也可以测试活动记录
请在任务目的地为我提供一个解决方案,以将 mysql 的卷共享到 rails 应用程序。
【问题讨论】:
标签: mysql docker ruby-on-rails-5 amazon-rds amazon-ecs