特に難しいことをするわけではない。
単純にdocker触って見たかった。
目標設定としては、チームの開発環境共通化を目指した。
初期だけだなら超簡単に進む
チュートリアルではあまりやりたいことがなかった。
チュートリアルをちゃんとやればdockerってこういうものというある程度の理解は得られると思う。
つまったところ
静的ファイルの扱い(nginx
dataフォルダからマウントしないとちゃんと静的ファイルとして認識されなかった。
例えばcodeというフォルダから
volumes:
# サイトデータ
- ./code:/var/www/html
とするとtext/htmlでしか読まれないとか。
mime.typesがうまく動いてないのかとか色々とやったけど無理で、nginxの設定ファイルをいじったらこんどは404になったりした。
これには大分困らされた。
なんでなのか知ってる方がいたら教えて欲しい。
一週間くらいあらゆる手をつくした。
Resource interpreted as Stylesheet but transferred with MIME type text/html
dataフォルダをvolumesの対象にすることで解消できた。
こうするとほぼ初期設定で全て読み込んでくれる。
volumes:
# サイトデータ
- ./data/code:/var/www/html
悲しい。
コンテナ間のアクセス(dbとphp
DBとphpの接続ができなかった。
普通にコンテナ同士なのでportに気をつけて、hostの対象をつけたdbコンテナ名で指定すればつながる。
mysql:host=db;port=3306;dbname=dbname;charset=utf8
phpの拡張(php
これはそれほどでもないけれど、若干詰まった。
phpのコンテナ側で起動時に拡張を入れてあげる必要があった。
Dockerfile
RUN apt-get update \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev libmcrypt-dev \
&& docker-php-ext-install pdo_mysql mysqli mbstring gd iconv mcrypt
RUN apt-get install -y git unzip
RUN apt-get install libldap2-dev -y && \
rm -rf /var/lib/apt/lists/* && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
RUN composer self-update
RUN composer install --dev --no-interaction
だいたいこんな感じ
やってみて
環境関連の共通化自体は超楽になると思う。
とりあえずwindowsとmacが入り乱れている状況なのでこれ使っていきたい。