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

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

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

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

Ruby on Rails

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

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1238閲覧

EC2上でdocker-compose build を数回実行するとEBSが `no space left on device`と表示される

begenner

総合スコア80

docker-compose

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

Ruby on Rails

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

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/09/20 05:23

編集2021/09/20 08:14

現在AWS(EC2)にDocker+RailsアプリをGitHubからcloneして
【Rails AWS Docker】既存Ruby on Rails + MySQLアプリをDockerで構築し、AWSにデプロイする(6) - Qiitaを参考に

  • git pull してGitHubのデータを反映させて
  • docker-compose buildを実行する

ことを2~3回ほど繰り返していると、

no space left on device

と表示されEBSを増量させないといけない状態になってしまいます。
EC2上でcloneしてきたプロジェクトのサイズを以下のコマンドで確認したところ26MBであることがわかりました。

$ du -sm webapp/ # 26 webapp/

それにもかかわらずなぜどんどんボリュームが増加し、圧迫され、増量を余儀なくされるのか
原因が全くわかりません(m_ m)
もしわかる方がいらっしゃればご教授いただきますようよろしくお願いいたします(m
_m)

動作環境

RailsAWS
Ruby: 2.7.3Amazon linux2
Rails: 6.0.3.6nginx: 1.16.1
Devise: 4.7.3EC2、RDS(MySQL)
dotenv-railsを使用
Docker,docker-composeをEC2上にインストール

試したこと

no space left on deviceとEC2のconsole上で表示されたあとに
《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド - Qiita
を参考にdocker-compose down --rmi all --volumes --remove-orphansコマンドをしたが、特に変化がなかった

期待する動作

EBSの増量をできるだけ防ぎたい

該当しそうなコード

Dockerfile(1/2)

Docker

1FROM ruby:2.7.3 2 3ENV APP_DIR /webapp 4ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE yes 5ENV DEBCONF_NOWARNINGS yes 6ENV BUNDLE_DEPLOYMENT true 7ENV BUNDLE_JOBS 1 8ENV BUNDLE_PATH /webapp/vendor/bundle 9ENV BUNDLE_WITHOUT development:test 10ENV LANG C.UTF-8 11ENV MY_BUNDLER_VERSION 2.1.4 12ENV RAILS_ENV production 13RUN mkdir /webapp 14WORKDIR /webapp 15 16RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \ 17 && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ 18 && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ 19 && apt-get update -qq \ 20 && apt-get install -y --no-install-recommends \ 21 build-essential \ 22 libpq-dev \ 23 vim \ 24 nodejs\ 25 yarn 26 27COPY Gemfile Gemfile.lock /webapp/ 28COPY package.json yarn.lock /webapp/ 29RUN gem install bundler --no-document -v 2.1.4 \ 30 && bundle install && yarn install --production --frozen-lockfile \ 31 && yarn cache clean 32 33COPY entrypoint.sh /webapp/ 34RUN chmod 755 /webapp/entrypoint.sh 35ENTRYPOINT [ "entrypoint.sh" ] 36 37COPY . /webapp 38 39 40 41EXPOSE 3000 42CMD ["rails", "server", "-b", "0.0.0.0"]

docker-compose.yml(2/2)

Docker

1version: '3.7' 2 3services: 4 web: 5 build: 6 context: . 7 dockerfile: ./Dockerfile.production 8 command: bundle exec puma -C config/puma.rb -e production 9 environment: 10 RAILS_ENV: production 11 RAILS_SERVE_STATIC_FILES: 'true' 12 networks: 13 - webapp-network 14 volumes: 15 - .:/webapp 16 - public-data:/webapp/public 17 - tmp-data:/webapp/tmp 18 - log-data:/webapp/log 19 - bundle:/webapp/vendor/bundle 20 - node-modules:/webapp/node_modules 21 ports: 22 - "3000:3000" 23 - "3035:3035" 24 nginx: 25 build: 26 context: . 27 dockerfile: ./containers/nginx/Dockerfile 28 volumes: 29 - public-data:/webapp/public 30 - tmp-data:/webapp/tmp 31 networks: 32 - webapp-network 33 ports: 34 - 80:80 35 depends_on: 36 - web 37 38volumes: 39 bundle: 40 driver: local 41 node-modules: 42 driver: local 43 public-data: 44 tmp-data: 45 log-data: 46 47networks: 48 webapp-network: 49 external: true 50

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

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

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

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

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

guest

回答1

0

ベストアンサー

Dockerの過去のビルドしたイメージやらpullしたイメージやらキャッシュやらなんやらが溜まってるんじゃないですかね。

この辺を参考にしてみてください。
Dockerのあれこれを断捨離する

個人的にはそんなところで詰まるくらいならEBSをもう少し拡張すればいいのではと思いますが…。

投稿2021/09/20 08:15

yu_1985

総合スコア7588

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

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

begenner

2021/09/25 08:55

返信遅くなり申し訳ありません。 アドバイスの通りimageがたまっていました。 教えていただいたリンクを参考にして使用容量を減らすことができました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問