AWS ECS – Rails Container无法通过mysqld.sock连接链接的容器mysql
我已经在AWS ECS上安装了应用程序,包含存储库,任务和集群pipe理。 我的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存储库上设置的存储库。
在任务目标中,我已经build立了两个相互linked
容器rail-app
和mysql
从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
,它运行正常并正确连接db。 在这里,我也可以testing活动logging
请给我提供一个解决scheme,在任务目的地共享量的MySQL导轨应用程序。
我在这里回答我自己的问题,
我已经在任务的容器部分分配了envvariables。 哪些未在环境中正确加载。 当我用application.yml
使用figaro
它已经开始根据环境使用variables。
Mysql无法从环境中获取主机