Skip to content

Dockerfile.devで起動したコンテナ内でbundle installできるようaptパッケージを追加する#2622

Merged
takaishi merged 1 commit intomainfrom
bundle-install-Dockerfile.dev
Sep 22, 2025
Merged

Dockerfile.devで起動したコンテナ内でbundle installできるようaptパッケージを追加する#2622
takaishi merged 1 commit intomainfrom
bundle-install-Dockerfile.dev

Conversation

@ne-sachirou
Copy link
Member

Dockerfile.devでビルドしたコンテナ内でbundle installできたら便利だったので、できるようにした。build-essentialとdefault-libmysqlclient-devを追加し、以下のコマンドが通るようになる。

docker buildx build -f Dockerfile.dev -t dreamkast-dev .
docker run -it -v $(pwd):/app --rm dreamkast-dev bash
bundle install

※dreamkast リポジトリを検索した限りでは Dockerfile.dev は今使われていない。

@ne-sachirou ne-sachirou self-assigned this Sep 18, 2025
@gitops-for-cloudnativedays gitops-for-cloudnativedays bot added the reviewapps Build ReviewApp environment automatically if this label is granted label Sep 18, 2025
@claude
Copy link

claude bot commented Sep 18, 2025

Claude finished @ne-sachirou's task —— View job


レビューフィードバック

このPull Requestをレビューしました。build-essentialdefault-libmysqlclient-devパッケージの追加により、Dockerfile.dev内でbundle installを実行できるようになる変更です。

✅ 良い点

  1. 必要最小限の変更: build-essential(コンパイラツール群)とdefault-libmysqlclient-dev(mysql2 gemのために必要)の追加のみで、目的を達成しています。

  2. パッケージの選択が適切:

    • mysql2 gem(Gemfile:72)のビルドに必要なdefault-libmysqlclient-devを追加
    • ネイティブ拡張を持つgemのビルドに必要なbuild-essentialを追加
  3. 本番環境との一貫性: メインのDockerfileでもlibmariadb3を使用しており、MySQLクライアントライブラリの選択に一貫性があります。

📝 検討事項と提案

  1. 追加のネイティブ拡張を持つgem対応:
    Gemfileを確認すると、以下のgemもネイティブ拡張を必要とする可能性があります:

    • nokogiri (1.18.9) - 通常はlibxml2とlibxsltが必要
    • sassc (2.4.0) - g++が必要(build-essentialに含まれる)
    • image_processing (1.12.2) - 画像処理ライブラリが必要

    将来的にこれらのgemでビルドエラーが発生する場合は、以下のパッケージの追加を検討してください:

    libxml2-dev libxslt-dev  # nokogiri用
  2. パッケージリストの整理:
    インストール順序を整理し、関連するパッケージをグループ化することで可読性が向上します:

    RUN apt-get update \
        && apt-get -y install \
        # ビルドツール
        build-essential \
        # データベース関連
        default-libmysqlclient-dev \
        libmariadb3 \
        # その他の開発ツール
        curl \
        git \
        vim \
        wget \
        # アプリケーション依存
        libvips42 \
        shared-mime-info
  3. 開発環境ドキュメントの更新:
    README.mdにDockerfile.devの使用方法を追記することで、チーム全体での利用が促進されます。

✅ セキュリティ・パフォーマンス

  • セキュリティ: 開発環境用のDockerfileであり、本番環境には影響しません。追加されたパッケージは一般的な開発ツールで、セキュリティリスクは低いです。
  • パフォーマンス: パッケージの追加によりイメージサイズは増加しますが、開発環境用なので問題ありません。

総評

この変更は明確な目的を持ち、最小限の変更で実現されています。開発環境でのセットアップを簡素化する良い改善です。現在使われていないDockerfile.devですが、開発者が手軽に環境構築できるようになる点で価値があります。

提案した追加パッケージは、今後必要に応じて追加することをお勧めします。

@ne-sachirou ne-sachirou requested a review from a team September 18, 2025 13:12
gitops-for-cloudnativedays bot added a commit to cloudnativedaysjp/dreamkast-infra that referenced this pull request Sep 18, 2025
commit: cloudnativedaysjp/dreamkast@3ca9153
action URL: https://github.com/cloudnativedaysjp/dreamkast/actions/runs/17829793613

Co-authored-by: gitops-for-cloudnativedays[bot] <113280573+gitops-for-cloudnativedays[bot]@users.noreply.github.com>
@github-actions
Copy link

@github-actions
Copy link

Simplecov Report

Covered Threshold
64.36% 60%

@takaishi takaishi merged commit 7b23bae into main Sep 22, 2025
12 checks passed
@takaishi takaishi deleted the bundle-install-Dockerfile.dev branch September 22, 2025 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewapps Build ReviewApp environment automatically if this label is granted

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants