■やりたいこと
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
あなたの回答
tips
プレビュー