skillup

技術ブログ

サーバー・ネットワーク

Dockerfile作成での気づきなど(php+webサーバー)

投稿日:

実務で、Dockerfileを色々いじっていたんのでそこで得た気づきなどを。

基本的な構成の考え

以前はCentOSを入れてその中にphp、MySQL、nodeなどを入れていましたが、これらは当然別々にします。そもそもプロセスごとに色々な環境を組み合わせられるのがメリットだと思うので。

本当はphpとapacheも別にすべきのようですが、さわりの部分では一緒に進めます。

やり始めは例えばなんらかのフレームワークを入れるとしても

  • PHP+Apache(アプリ相当部分)
  • MySQL
  • node(npm)

ぐらいでいいと思います。

アプリに関して

CentOS入れても問題はないんですけど、単純に重いことが多く、たくさんの環境を作っているとおそらくディスク容量が一杯になってしまうと思います。

一般的にはubuntuやalpineなどを使うと比較的軽量にすむことが多いため、これらが使うことが一般的なようです。

ただし難点もありまして、当然yumは使えませんし、最小構成だとvimすら使えません。

自分が書いたDockerfileは以下のようなものです。

注意点(かつ色々つまづいた点)としては下記のような点です。

  • htaccessでのmod_rewriteを使うにはapacheじゃないとだめ(nginxだと使えません。)

  • の部分でDocumentRootを修正
  • RUN a2enmod rewrite headers しないと mod_rewrite が有効になりません。
  • PHPの拡張ライブラリは docker-php-ext-install pdo (コア部分)などで入れる
  • peclのものは pecl install mailparse && docker-php-ext-enable mailparse

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dockerコマンドについて再考(ttyや/bin/bashなど)

Contents1 ttyオプションに関して2 docker execコマンドに関して2.1 ログインしないパターン2.2 shellに関して ttyオプションに関して dockerでnodeを起動さ …

no image

jenkinsでのSSH鍵認証&herokuからのソース取得

jenkinsでGitからソースを取得するときに鍵認証をかけている場合はそれ用の設定が必要になります。 基本的な考え方ですが、userがjenkinsだったときに、ssh鍵認証やherokuでどのよう …

no image

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

クリックジャッキング

Contents1 クリックジャッキングとは?2 被害3 対策 クリックジャッキングとは? 悪意のあるサイトの特定上の場所をクリックさせ、誤操作をさせ、意図しない機能を実行させられる可能性があります。 …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

アーカイブ