こんばんは。
何番煎じだよって話だけど、勉強したので残しときます。
はじめに
今お世話になっている職場ではローカル開発環境がなく、サーバーにvhosts切って開発環境を作っています。
それはそれでいいのですが、新しい人(とくにデザイナーさん)が入ってきたときは、環境構築にすごく手間取っている印象でした(インフラ強い人がいないのが原因なのかも)
docker入れてコマンド一発ってとこまで持っていきたいので、入れてみました。
やってみた
↑の企業様の現在運用中のサービスは年代物で、だいぶ昔から蓄積されたデータがテストDBにも膨大に入っています。
かつ、昔に作られて、いらないっぽいけど呼び出されている、でも使われてない、みたいな意味不明のデータも大量にあるので、スキーマだけ持ってきてローカルにDB構築しても確実に動きません。
ということで、まず事前準備としてテストのRDSをパブリックアクセス許可にして、IP制限で接続できるようにしました。
あとは、httpd+php+memcacheというよくある構成です。
※ パスの設定はサービスに寄せてます。
まずdocker-compose.yml作成します。
version: '3' services: web: container_name: application_container build: ./web ports: - '5260:80' volumes: - ../:/var/www/project links: - kvs kvs: container_name: kvs_container image: memcached
次にweb用のDockerfileを作成します。
FROM centos:centos7 MAINTAINER kojirock RUN yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm RUN yum -y update RUN yum clean all RUN yum install -y --enablerepo=remi-php56 httpd php php-mbstring php-pdo php-gd php-mysql php-xml php-intl php-pecl-memcached php-pecl-xdebug php-pecl-xhprof wget RUN echo "ServerName localhost" >> /etc/httpd/conf/httpd.conf RUN cp -p /usr/share/zoneinfo/Japan /etc/localtime COPY vhosts.conf /etc/httpd/conf.d/ CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
virtualhostの設定ファイルも置いときます。
<VirtualHost *:80> DocumentRoot "/var/www/project/app/webroot" ErrorLog "/var/log/httpd/application_error.log" Options Indexes FollowSymLinks SetEnv ENVIRONMENT local <Directory "/var/www/project"> AllowOverride All Require all granted </Directory> </VirtualHost>
あとは、以下のコマンドでビルドして立ち上げるだけです。
$ docker-compose build && docker-compose up -d
出来ました。
あとは環境変数送ってるから、アプリケーション側でローカルの動きをするように設定ファイルを読み替えてあげれば完了です。
おわりに
docker本格的に触ったのって初めてでした。
まぁ本格的ってほどガッツリ触っていないですが・・・
laradockとかで作ったりはしてましたが、やっぱお手軽ツール触るだけでなく、キチンと触らないとダメですね。
あと、意外に便利だなと思ったのは、kitematicでした。
起動中のコンテナとかパット見で見れるのいいなと。
とりあえずRDS以外はローカル環境構築できたので、あとは使用中のテストDBの最適化を済ませてDBもローカルに持つようにしたいなと思います。
とりあえずこんな感じです。 dockerもっと勉強しよ。
お疲れ様でした。