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

phpenvで入れたphpの起動スクリプトに関して

以前、CentOS7.7にphp5.3を入れるという案件がありましたが、yumなどでは入らないため、phpenvで入れました。 phpenv5.3+php-fpm が、起動スクリプトを配置していないこ …

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …

no image

ポート解放(CentOS7)

新サーバー構築をしていたときにwebサーバーとしてnginxを立てましたが、外部から接続ができません。 500エラーすら吐かれず、ログも残っていません。 こんな時はホスト自体にアクセスが届いていない可 …

no image

scpコマンドを使ったサーバー間のファイルのやり取り

あるサーバーのファイルを別サーバーにコピーするとき、大昔はFTPを使っていましたが、現在FTPサーバー自体を立てることがあまりないため、SSHを使ったSCPコマンドでのファイル点を使いました。 Con …

no image

herokuでMySQL

昨日に続き、heroku+MySQLのメモです。 herokuはディフォルトではPostgreSQLですが、アドオンを使うとMySQLも使えるようになります。 使い方ですが、herokuの管理画面でク …

アーカイブ