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

herokuでのhttpd.conf設定

前回の記事でLet’s EncryptでSSL設定する場合、 http://ドメイン/.well-known/ というURLにアクセスする必要があります。 ただherok …

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

ロードアベレージ監視シェルスクリプト

ロードアベレージの監視シェルスクリプトについて Contents1 使用コマンド1.1 uptime1.2 /proc/cpuinfo1.3 bc2 ソース3 他参考リンク 使用コマンド uptime …

no image

AWSのVPCの設定に関して

AWSでEC2を立ち上げたことはありましたが、VPC(Virtual Private Cloud)は使ったことがなかったので、これを機に調査してみました。 Contents1 VPCとは?2 構成3 …

no image

ansible host指定,変数の外だし,ユーザー追加

Ansibleにてhostユーザーやユーザーの追加などす。 Contents1 ホストの指定2 ユーザーの追加2.1 変数を別ファイルに2.2 パスワードのハッシュ化2.3 パスワードなしでsudo2 …