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

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

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

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

Ruby on Rails 5

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

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

Q&A

0回答

2499閲覧

docker-composeでrailsコンテナが立ち上がらない

inuisouichirou

総合スコア7

docker-compose

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

Ruby on Rails 5

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

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

0グッド

0クリップ

投稿2019/03/04 05:32

編集2019/03/04 05:35

■やりたいこと
docker-composeを使い、nginx rails mysqlの各コンテナをローカルに立ち上げたいと思っています。

■問題
railsコンテナが起動後すぐに終了してしまう問題に困っています。
また、dockerをuninstallし、ソースコードもすべて消して最初からやり直すと、なにも設定を変更を触っていないにも関わらずたまに動くことがあるのもよくわかりませんでした。

■前提条件
ソースコードはローカルのソースコードをコンテナ内にマウントするつもりです。
また、railsコンテナが落ちる原因を調査するために、logsコマンドで出力をしようとおもったのですが、確認の仕方が悪いのか内容がなにも出力されない状態です。
アドバイスなり、原因のわかる方がいれば教えていただけると助かります。
足りない情報など、ご指摘あればお願いします。

■環境バージョン
・mac
10.11.6

・docker
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:21:31 2018
OS/Arch: darwin/amd64
Experimental: false

Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:29:02 2018
OS/Arch: linux/amd64
Experimental: true

下記設定ファイルになります。
▼ docker-compose.yml

version: '3' services: rails: container_name: rails build: context: ./ dockerfile: ./containers/rails/Dockerfile command: bundle exec unicorn -p 3000 -c config/unicorn.conf.rb ports: - '3000:3000' environment: RAILS_ENV: development MYSQL_ROOT_PASSWORD: password depends_on: - db volumes: - ./:/worker-admin links: - db nginx: container_name: nginx build: containers/nginx ports: - '80:80' depends_on: - rails volumes: - ./containers/nginx/nginx.conf:/etc/nginx/nginx.conf - ./containers_data/nginx:/var/log/nginx links: - rails db: container_name: db image: mysql:8.0.15 command: mysqld --default-authentication-plugin=mysql_native_password environment: MYSQL_USER: root MYSQL_ROOT_PASSWORD: password ports: - '3316:3306' volumes: - ./containers_data/mysql:/var/lib/mysql

▼containers/rails/Dockerfile

FROM ruby:2.6.1 RUN apt-get update && apt-get install -y mysql-client vim --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN mkdir /var/lib/mysql && touch /var/lib/mysql/mysql.sock RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ADD ./containers/mysql/my.cnf /etc/ RUN mkdir /worker-admin WORKDIR /worker-admin COPY Gemfile /worker-admin/Gemfile COPY Gemfile.lock /worker-admin/Gemfile.lock RUN bundle install COPY . /worker-admin EXPOSE 3000

▼containers/nginx/Dockerfile

FROM nginx:1.14.2 RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime RUN apt-get update && apt-get install -y vim --no-install-recommends ADD nginx.conf /etc/nginx/nginx.conf

▼containers/mysql/my.cnf

[client] socket=/var/lib/mysql/mysql.sock

▼結果
Starting db ... done
Recreating rails ... done
Recreating nginx ... done
Attaching to db, rails, nginx
db | 2019-03-04T05:08:46.859924Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
db | 2019-03-04T05:08:46.860557Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 1
db | 2019-03-04T05:08:48.758881Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
db | 2019-03-04T05:08:48.787636Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
db | 2019-03-04T05:08:48.879031Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.15' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db | 2019-03-04T05:08:49.000574Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
rails exited with code 1

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

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

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

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

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

zembutsu

2019/04/28 06:35

ディレクトリを作成し、はじめて `docker-compose up` を実行し、そのあとの `docker-compose logs rails` この内容は何か出てきますでしょうか。 もし何も出ていないのであれば、何らかの理由で rails アプリケーションが動作していないので、ファイルのコピー漏れが無いかどうか、Compose を使わず単体の docker runで動作するかどうかを確認されたほうが良さそうです。 なお、「作り直すと動く」のは、ボリュームをお使いだからと思います。ボリュームのなかにファイルがあると、初期化手順がかわったり、想定していなかったファイルができたりして、意図したとおりに動かないと考えられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問