🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

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

MySQL

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

Ruby on Rails

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

Docker

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

Q&A

解決済

1回答

734閲覧

docker-composeのbuild/upのエラー

k-810

総合スコア192

docker-compose

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

MySQL

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

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2019/10/07 04:06

編集2019/10/07 07:02

docker-composeのエラーを解決したい

docker-composeのbuildやupの際に出るエラーを解決したい

docker-composeのbuildの際に発生するエラーメッセージ

Step 9/9 : ADD . $APP_ROOT ERROR: Service 'web' failed to build: Error processing tar file(exit status 1): write /app_name/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/values/unicode_tables.dat: no space left on device

docker-composeのupの際に発生するエラーメッセージ

db_1 | [ERROR] Unix socket lock file is empty /var/run/mysqld/mysqld.sock.lock. db_1 | [ERROR] Unable to setup unix socket lock file. db_1 | [ERROR] Aborting
追記①

dockerのソフトをアップデートする前は正常に動いていたので,おそらくアップデートが原因かと思われます。
再起動してみましたが,解決しませんでした。

追記②

MySQL Daemon Lock issue
を参考にして
$sudo mkdir /var/run/mysqld
$sudo chown mysql:mysql /var/run/mysqld
を実行してみましたが解決しませんでした。

また,
$ sudo chmod 755 /var/run/mysqld/
も実行してみましたが解決しませんでした。

追記③

$ cd /var/run/mysqld/
で移動した後
$ ls

$ls -l
を実行しても何も表示されません

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

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

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

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

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

guest

回答1

0

ベストアンサー

no space left on device なので、単純にDockerのホストマシンの容量が足りないのではないでしょうか。

$ docker image prune

などで使っていないイメージ等を削除してから再度buildしてみてください。
参考:dockerでいらないimage,container,networkを一括削除する

(追記)

docker-compose up のエラーについては、ホストマシンの /var/run/mysqld ではなく、コンテナ内の /var/run/mysqld について操作する必要があるようです。
docker-compose.ymlを見たところ、ホストマシンの ./db/mysql_data にマウントされているようなので、ホストマシンの ./db/mysql_data に対してchownやchmod操作をしてみてください。

それでもダメな場合は、一度

$ docker exec -it db_1 bash

などで一度MySQLのコンテナに入って /var/run/mysqld の状態を確認してみてください。

投稿2019/10/07 04:45

編集2019/10/07 06:47
guissy-k

総合スコア245

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

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

k-810

2019/10/07 05:00

buildは成功しました!ありがとうございます。 ですが,upは相変わらず同じエラーが出ています。
guissy-k

2019/10/07 06:20

upでのエラーについてですが、docker-compose upした後、対象のMySQLのコンテナに入って操作/またはMySQLコンテナのvolumeとして設定したホストマシンのディレクトリに対して操作しましたか? そうでない場合、ホストマシンの/var/run/mysqld/をどのように変更してもMySQLのコンテナには影響が無いためエラーは改善しません。 docker-compose.ymlのdb(MySQL)コンテナの設定の部分にコマンドを追記してみてください。 (記載内容の例は回答に追記します)
k-810

2019/10/07 06:28

『upでのエラーについてですが、docker-compose upした後、対象のMySQLのコンテナに入って操作/またはMySQLコンテナのvolumeとして設定したホストマシンのディレクトリに対して操作しましたか?』 =>まだしていません 『docker-compose.ymlのdb(MySQL)コンテナの設定の部分にコマンドを追記してみてください。』 =>お願い致します
k-810

2019/10/07 06:32 編集

docker-compose.ymlの中身です ``` version: '3' services: db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci environment: MYSQL_ROOT_PASSWORD: MYSQL_DATABASE: ports: - "4306:3306" volumes: # 初期データを投入するSQLが格納されているdir - ./db/mysql_init:/docker-entrypoint-initdb.d # 永続化するときにマウントするdir - ./db/mysql_data:/var/lib/mysql web: build: . command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/app_name # gemの変更後docker-compose buildせずに、docker-compose run rails bundle install ができるように - bundle_path:/bundle environment: - BUNDLE_PATH=/bundle ports: - "3000:3000" links: - db volumes: bundle_path: ```
guissy-k

2019/10/07 06:33

回答の追記が入れ違いになってしまいました。 ymlの中身をご提示いただいたので修正します。
guissy-k

2019/10/07 06:47

修正しました。内容のご確認をお願いします。
k-810

2019/10/07 06:57

./db/mysql_data に対してchmod操作をしてみたらうまくいきました。ありがとうございました!!
guissy-k

2019/10/07 07:36

良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問