はじめに
初めまして!
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい!自分が学んだ足跡を残していきたい!と思い記事をかきました!
最終的には自在に開発できるようになりたいと思っています。
いろいろな記事を参考にさせてもらっています。
その中でもこれってどういう意味?とかつまづいたところを念入りに書いていこうかと思います。
今回の目的
Dockerのイメージを選ぶときに、「これどう意味なの?何を基準に判断すればいいの?」となりました。使う範囲でいいから一通りの内容やルールを理解してから使いたいですよね。
対象範囲はPHPとPostgreSQLに絞りました。長くなったので記事は二つに分けています!
今回は前回の続きになります!
使用したものや事前準備
・Docker Hub
・PHP
・PostgreSQL
主に参考にさせていただいた記事
Docker Hubの情報を読みながら、わからないところは参考記事やChatGPTに解説してもらいました。
参考記事は本文中に掲載します!
PHPのタグ構成
早速ですが下記の中央より下のところに説明がありました。
今回は読み合わせになりそうなので「端的に言えばこういうことでは?」のレベルでまとめていきたいと思います。
※確実な情報は下記のリンクを参照ください。
php:<version>-cli
コマンドラインに特化したイメージ。コマンドラインアプリケーション開発やスクリプト実行用。
Webサーバーにはならない。
php:-apache
DebianとApache httpdイメージ。
Webサーバーが組み込まれているため、Webアプリケーションの開発やデプロイメントに最適。
php:-fpm
アプリケーションサーバーにあたる。Nginxコンテナとの組み合わせで使われる。
PHPのFastCGIで効率的に動的ページを作成する。
php:-alpine
Alpine Linux。軽量最低限のため必要なものは自分でインストールしてカスタマイズする。
公式イメージが正しいと思うなよっていうのは、目から鱗でした。ここでDockerFileが必要なんだなとも。
PostgreSQLのタグ構成
DebianかAlpine Linuxの二択でした。
軽量にしたいからAlpne Linuxでいいんじゃないかと思ったが互換性のないツールもあるため簡単に選んでいいものではなさそう。
また、PostgreSQLのタグ構成のDockerfileを見ると、bookworm-slimとなっているため軽量対策も進んでそうです。
Slimがついているイメージは使用頻度の低いパッケージを削除します。
-bookworm
Debian(Linuxディストリビューション)のバージョン12
-bullseye
Debian(Linuxディストリビューション)のバージョン11
-alpine
Alpine Linux
最後に
たださらっとみただけではメリットデメリットをはっきり説明できるところまで行けませんでしたが、どんな意味を持つかはわかりました!
コンテナ構築に活かしまくります!