LoginSignup
1
1

More than 5 years have passed since last update.

Docker導入 in mariadb and php and nginx

Posted at

特に難しいことをするわけではない。

単純に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が入り乱れている状況なのでこれ使っていきたい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1