質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

559閲覧

docker-composeでRailsアプリを作成しHerokuにデプロイした後のアプリケーションエラー

uraura

総合スコア11

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/02/11 04:56

編集2020/02/11 08:17

前提・実現したいこと

Docker初学者です。
よろしくお願い致します。

「Ruby on Rails6 実践ガイド」という本を参考にしながらdockerとdocker-composeをインストールし、
コンテナ内でRails6のアプリケーションを自作しました。

その後、こちらのサイトを参考にHerokuへデプロイしました。この際エラーは発生していません。
DockerComposeでコンテナベースのRailsアプリを作成してHerokuにデプロイする

heroku openするとapplication errorとなりきちんと表示されません。

発生している問題・エラーメッセージ

logは以下の様になっています。

2020-02-11T04:31:25.591433+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=myapp.herokuapp.com request_id=417481de-908c-4c96-aa69-4788df3fa4b2 fwd="126.208.213.154" dyno= connect= service= status=503 bytes= protocol=https 2020-02-11T04:31:26.332562+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=myapp.herokuapp.com request_id=50bd4481-8b6c-4053-b87a-42f6c061f232 fwd="126.208.213.154" dyno= connect= service= status=503 bytes= protocol=https

rails consoleをするともう少し詳しいエラー内容がわかるかと思いましたが何のヒントも得られず、
heroku apps:info をしてみると以下の情報が得られました。

$ heroku apps:info
=== myapp
Addons: heroku-postgresql:hobby-dev
Auto Cert Mgmt: false
Dynos: web: 1
Git URL: https://git.heroku.com/myapp.git
Region: us
Repo Size: 0 B
Slug Size: 0 B
Stack: container
Web URL: https://myapp.herokuapp.com/

Repo size, Slug Sizeともに0Bになっていることから、そもそもRailsアプリのファイル群が転送されていないからダメなのだと思いますがどうしたらいいのかわかりません。

該当のソースコード

docker-compose.ymlの中身です

version: '3' services: db: image: postgres:11.2-alpine volumes: - ./tmp/db:/var/lib/postgresql/data web: build: . command: /bin/sh environment: WEBPACKER_DEV_SERVER_HOST: "0.0.0.0" RAILS_SERVE_STATIC_FILES: "1" EDITOR: "vim" volumes: - ./apps:/apps ports: - "3000:3000" - "3035:3035" depends_on: - db tty: true

Dockerfileの中身です。

FROM oiax/rails6-deps:latest ARG UID=1000 ARG GID=1000 RUN mkdir /var/mail RUN groupadd -g $GID devel RUN useradd -u $UID -g devel -m devel RUN echo "devel ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers WORKDIR /tmp COPY init/Gemfile /tmp/Gemfile COPY init/Gemfile.lock /tmp/Gemfile.lock RUN bundle install COPY ./apps /apps RUN apk add --no-cache openssl USER devel RUN openssl rand -hex 64 > /home/devel/.secret_key_base RUN echo $'export SECRET_KEY_BASE=$(cat /home/devel/.secret_key_base)' \ >> /home/devel/.bashrc WORKDIR /apps

この2つのファイルは前述の書籍に習ってdocker等をインストールしていたら勝手にできてた、
というもので、ところどころ理解できていません。

デプロイしたいアプリのファイル群はdocker-compose.ymlとDockerfileが入っているフォルダ内にあるappsの下層にmyappというフォルダで存在しています。

|-apps -- myapp
|
|- docker-compose.yml
|- Dockerfile

補足情報(FW/ツールのバージョンなど)

Docker version 19.03.5, build 633a0ea
docker-compose version 1.25.2, build 698e2846
Rails 6.0.2.1
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-linux-musl]

dockerを初めて扱い、勉強不足でトンチンカンな事を書いているかもしれませんが
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問