ElasticBeanstalkにローカルのDocker(with Rails)をeb createでデプロイしたのですが、ページURLにアクセスするとNginxの502 Bad errorが表示され、ログファイルは以下のようになっていました。
2017/01/01 10:28:52 [error] 22067#0: *10 connect() failed (111: Connection refused) while connecting to upstream, client: *****, server: , request: "GET / HTTP/1.1", upstream: "http://172.17.0.2:3000/", host: "*****.us-west-2.elasticbeanstalk.com" 2017/01/01 10:28:52 [error] 22067#0: *10 connect() failed (111: Connection refused) while connecting to upstream, client: *****, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://172.17.0.2:3000/favicon.ico", host: "*****.us-west-2.elasticbeanstalk.com", referrer: "http://*****.us-west-2.elasticbeanstalk.com/"
このエラーについての記事は多くあるものの、結局根本的な解決には至らず…
関連ファイルは以下のようになります。
Dockerfile
FROM ruby:2.1 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ADD Gemfile /usr/src/app/ ADD Gemfile.lock /usr/src/app/ ADD start.sh /usr/src/app/bin/ RUN chmod +x /usr/src/app/bin/start.sh RUN bundle install ADD . /usr/src/app RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y mysql-client --no-install-recommends && rm -rf /var/lib/apt/lists/* EXPOSE 3000 CMD ["bin/start.sh"]
Dockerrun.aws.json
{ "AWSEBDockerrunVersion": "1", "Ports" : [{ "ContainerPort": "3000" }] }
start.sh
#!/bin/bash bundle exec rake db:migrate bundle exec rails server
/etc/nginx/conf.d/elasticbeanstalk-nginx-docker-upstream.conf
upstream docker { server 172.17.0.2:3000; keepalive 256; }
/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf
server { listen 80; gzip on; gzip_comp_level 4; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { set $year $1; set $month $2; set $day $3; set $hour $4; } access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; access_log /var/log/nginx/access.log; location / { proxy_pass http://docker; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
以上です。よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。