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

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

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

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

MySQL

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

Ruby on Rails

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

受付中

[Rails]'docker-compose ps'で、すべてのコンテナが一覧に表示されない

hajsu00
hajsu00

総合スコア118

docker-compose

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

MySQL

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

Ruby on Rails

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

1回答

0リアクション

0クリップ

175閲覧

投稿2022/08/17 01:29

Rails + Nginx + MySQL構成のアプリケーションをDockerを用いて構築しています。
docker-composeを使用してビルドと起動をしたのですが、docker-compose psで一部のコンテナしか一覧に表示されません。
ご助言をいただけると幸いです。

bash

% docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3eb1b53984bb myapp_app "entrypoint.sh /bin/…" 14 seconds ago Up 13 seconds myapp_app_development 98567fd0e2e0 mysql:8.0.28 "docker-entrypoint.s…" 15 seconds ago Up 14 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp myapp_db_development c5f70cdda7a0 myapp_nginx "/docker-entrypoint.…" 15 seconds ago Up 14 seconds 0.0.0.0:80->80/tcp myapp_nginx_development % docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------ myapp_app_development entrypoint.sh /bin/sh -c b ... Up myapp_nginx_development /docker-entrypoint.sh /bin ... Up 0.0.0.0:80->80/tcp

開発環境

  • macOS Monterey v12.1
  • ruby 3.0.1
  • Rails 6.1.4.4
  • docker 20.10.12
  • docker-compos 1.29.2

試したこと

  • コンテナとイメージの再作成(キャッシュ不使用およびボリュームの再作成含む)
  • curlで通信確認、ポート300に接続できない

bash

% curl localhost:3000 curl: (7) Failed to connect to localhost port 3000: Connection refused
  • MySQLのコンテナには入れる。またユーザーやパスワード、Host類の設定はdatabase.ymlでの指定と合っている

心当たり

一度gitのローカルリポジトリをめちゃくちゃにしてしまってリモートで上書きをした際に.envなどのファイルが消えてしまいました。その後のコンテナ再作成で不具合が発生していますので、このあたりに原因があると思って調査していました。

関連コード

docker-compose.yml類

yml

# docker-compose.yml version: '3' services: nginx: build: context: . dockerfile: ./nginx/Dockerfile environment: TZ: Asia/Tokyo ports: - 80:80 app: build: context: . dockerfile: ./api/Dockerfile args: - RAILS_MASTER_KEY=${RAILS_MASTER_KEY} environment: TZ: Asia/Tokyo # docker-compose.development.yml version: '3' services: nginx: extends: file: docker-compose.yml service: nginx container_name: myapp_nginx_development ports: - 80:80 volumes: - ./nginx/myapp.conf:/etc/nginx/conf.d/myapp.conf - ./nginx/nginx.conf:/etc/nginx/nginx.conf - public-data:/var/www/myapp/public - tmp-data:/var/www/myapp/tmp tty: true app: extends: file: docker-compose.yml service: app container_name: myapp_app_development environment: RAILS_ENV: development volumes: - ./api:/var/www/myapp - public-data:/var/www/myapp/public - tmp-data:/var/www/myapp/tmp depends_on: - db - nginx stdin_open: true tty: true db: image: mysql:8.0.28 container_name: myapp_db_development cap_add: - SYS_NICE volumes: - ./etc/my.cnf:/etc/mysql/conf.d/my.cnf - myapp_data:/var/lib/mysql environment: MYSQL_ROOT_HOST: '%' MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD} command: --default-authentication-plugin=mysql_native_password ports: - 3306:3306 env_file: - .env tty: true volumes: public-data: tmp-data: myapp_data: external: true

database.yml

yml

default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: <%= ENV['DATABASE_PASSWORD'] %> host: db socket: /tmp/mysql.sock development: <<: *default database: myapp_development test: <<: *default database: myapp_test production: <<: *default database: myapp username: <%= Rails.application.credentials.db[:user_name] %> password: <%= Rails.application.credentials.db[:password] %> host: <%= Rails.application.credentials.db[:endpoint] %> port: 3306

ビルド&起動

bash

% docker-compose -f docker-compose.development.yml build --no-cache % docker-compose -f docker-compose.development.yml up nginx_1 | 2022/08/17 09:55:46 [notice] 1#1: using the "epoll" event method nginx_1 | 2022/08/17 09:55:46 [notice] 1#1: nginx/1.23.1 ... nginx_1 | 2022/08/17 09:55:46 [notice] 1#1: start worker process 10 db_1 | 2022-08-17 00:40:07+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started. db_1 | 2022-08-17 00:40:07+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db_1 | 2022-08-17 00:40:07+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started. db_1 | 2022-08-17 00:40:07+00:00 [Note] [Entrypoint]: Initializing database files db_1 | 2022-08-17T00:40:07.319247Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead. db_1 | 2022-08-17T00:40:07.319382Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.28) initializing of server in progress as process 43 db_1 | 2022-08-17T00:40:07.327840Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. db_1 | 2022-08-17T00:40:07.943192Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. db_1 | 2022-08-17T00:40:09.477137Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. db_1 | 2022-08-17 00:40:13+00:00 [Note] [Entrypoint]: Database files initialized db_1 | 2022-08-17 00:40:13+00:00 [Note] [Entrypoint]: Starting temporary server db_1 | mysqld will log errors to /var/lib/mysql/98567fd0e2e0.err db_1 | mysqld is running as pid 94 db_1 | 2022-08-17 00:40:14+00:00 [Note] [Entrypoint]: Temporary server started. db_1 | '/var/run/mysqld/mysqld.sock' -> '/tmp/mysql.sock' db_1 | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. db_1 | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. db_1 | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. db_1 | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. db_1 | db_1 | 2022-08-17 00:40:18+00:00 [Note] [Entrypoint]: Stopping temporary server db_1 | 2022-08-17 00:40:20+00:00 [Note] [Entrypoint]: Temporary server stopped db_1 | db_1 | 2022-08-17 00:40:20+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. db_1 | db_1 | 2022-08-17T00:40:20.562971Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead. db_1 | 2022-08-17T00:40:20.563033Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.28) starting as process 1 db_1 | 2022-08-17T00:40:20.580964Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. db_1 | 2022-08-17T00:40:20.793756Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. db_1 | 2022-08-17T00:40:21.033203Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. db_1 | 2022-08-17T00:40:21.033370Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. db_1 | 2022-08-17T00:40:21.035174Z 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_1 | 2022-08-17T00:40:21.063323Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock db_1 | 2022-08-17T00:40:21.063572Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.28' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server - GPL. app_1 | [9] Puma starting in cluster mode... app_1 | [9] * Puma version: 5.6.4 (ruby 3.0.1-p64) ("Birdie's Version") app_1 | [9] * Min threads: 5 app_1 | [9] * Max threads: 5 app_1 | [9] * Environment: development app_1 | [9] * Master PID: 9 app_1 | [9] * Workers: 2 app_1 | [9] * Restarts: () hot () phased app_1 | [9] * Preloading application app_1 | [9] * Listening on unix:///var/www/myapp/tmp/sockets/puma.sock app_1 | [9] ! WARNING: Detected 6 Thread(s) started in app boot: app_1 | [9] ! #<Thread:0x000055903da62a70@listen-run_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 sleep> - /usr/local/bundle/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:317:in `select' app_1 | [9] ! #<Thread:0x000055903da61a08@listen-wait_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 sleep_forever> - /usr/local/lib/ruby/3.0.0/forwardable.rb:238:in `pop' app_1 | [9] ! #<Thread:0x000055903d9d86e0@listen-run_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 sleep> - /usr/local/bundle/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:317:in `select' app_1 | [9] ! #<Thread:0x000055903d9d2790@listen-wait_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 sleep_forever> - /usr/local/lib/ruby/3.0.0/forwardable.rb:238:in `pop' app_1 | [9] ! #<Thread:0x000055903bc7fdf0@listen-run_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 run> - /usr/local/bundle/gems/listen-3.7.1/lib/listen/record/entry.rb:27:in `size' app_1 | [9] ! #<Thread:0x000055903bc7cad8@listen-wait_thread /usr/local/bundle/gems/listen-3.7.1/lib/listen/thread.rb:17 sleep_forever> - /usr/local/lib/ruby/3.0.0/forwardable.rb:238:in `pop' app_1 | [9] Use Ctrl-C to stop app_1 | [9] - Worker 1 (PID: 28) booted in 0.03s, phase: 0 app_1 | [9] - Worker 0 (PID: 25) booted in 0.03s, phase: 0

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

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

MySQL

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

Ruby on Rails

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