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

IaC(Infrastructure as Code)に関して

近年ではインフラ環境もコード化しておいて、コマンドで起動や構築できることが一般的ですね。 ansibleやdockerなどは色々と使っていましたが、実際のインフラ環境では2020年6月現在AWSを使う …

no image

Python+cgiでwebアプリを動かすまで

PythonでRESTAPI的なプログラムを作った時のメモ。 あまりCGIで実行する人がいないようで、情報がそこまでありませんでしたが、Perlでやった経験もあり、動かせました。 Contents1 …

no image

SAM(AWSのサーバーレスフレームワーク)について

LambdaやAPIGatewayをちょこちょこいじってますが、goなどを使っているとローカルでの開発時にはAPIなどと直接連携したりすることはできません。 またデプロイ自体が面倒で画面からポチポチや …

no image

ポート解放(CentOS7)

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

no image

herokuでMySQL

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

アーカイブ