前提・実現したいこと
AWS,Docker(docker-compose),Railsの構成でインフラ(アプリ)作成しました。
EC2内でコンテナをたちあげてrails serverを起動させたのちに、パブリックIPアドレスへアクセスしたところ「ERR_CONNECTION_REFUSED」となってしまいます。
アプリの画面を表示させるにはどのようにしたらよいかご教示いただければ思います。
参考にしたサイト
https://qiita.com/at-946/items/1e8acea19cc0b9f31b98
詳細
ディレクトリ構成
kthr01/ docker-compose.yml Dockerfile start.sh src/ app/ bin/ ....
ファイル
Dockerfile
FROM ruby:2.7 ENV RAILS_ENV=production RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update -qq \ && apt-get install -y nodejs yarn \ && apt-get install -y vim WORKDIR /app COPY ./src /app RUN bundle config --local set path 'vendor/bundle' \ && bundle install COPY start.sh /start.sh RUN chmod 744 /start.sh CMD ["sh", "/start.sh"]
docker-compose.yml
version: '3' services: db: image: mysql:8.0 command: --default-authentication-plugin=mysql_native_password volumes: - ./src/db/mysql_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - ./src:/app ports: - "3000:3000" depends_on: - db
start.sh
#!/bin/sh if [ "${RAILS_ENV}" = "production" ] then bundle exec rails assets:precompile fi bundle exec rails s -p ${PORT:-3000} -b 0.0.0.0
EC2のセキュリティグループ
手順
ローカル環境でコンテナが作成され、localhost:3000で正常に表示されることを確認
↓
EC2にssh接続
↓
git clone
↓
docker-compose build
↓
docker-compose up ... web_1 | => Booting Puma web_1 | => Rails 6.1.4.4 application starting in production web_1 | => Run `bin/rails server --help` for more startup options web_1 | Puma starting in single mode... web_1 | * Puma version: 5.6.1 (ruby 2.7.5-p203) ("Birdie's Version") web_1 | * Min threads: 5 web_1 | * Max threads: 5 web_1 | * Environment: production web_1 | * PID: 1 web_1 | * Listening on http://0.0.0.0:3000 web_1 | Use Ctrl-C to stop
↓
EC2のパブリックIPアドレスにアクセス
↓
ERR_CONNECTION_REFUSEDと表示される
経験が乏しいため、なにか重要な手順を抜かしているのかもしれません。何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。