前提・実現したいこと
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を初めて扱い、勉強不足でトンチンカンな事を書いているかもしれませんが
よろしくお願い致します。
あなたの回答
tips
プレビュー