LoginSignup
0
0

More than 1 year has passed since last update.

dockerでローカルの環境設定

Posted at

はじめに

docker-composeでPHP7.2 + Apache + MySQL + phpMyAdmin環境を
Dockerに構築したので、自分が詰まった点などを含めて備忘録として書いています。

ディレクトリ構造

portfolio
|-docker-compose.yml
|-html
   └──index.php
|-Dockerfile
|-php.ini
|-mysql
|-phpmyadmin

docker-compose.yml

こちらの記事のdocker-compose.ymlを参考にコンテナの起動まで出来ました。
参考:docker-compose で PHP7.2 + Apache + MySQL + phpMyAdmin 環境を構築

発生したエラー①

上記の記事を参考にほぼ出来たのですがサイトを作り始めたところ

could not find driver

というエラーに遭遇しました。
ですのでDockerfileを別に作成しエラーを解決しました。

①まずはdocker-compose.ymlの

image: php:7.2-apache

の部分を下記のようにに変更してください。

build: .
docker-compose.yml
version: '3'

services:
  php:
    build: .
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./html:/var/www/html
    ports:
      - 8080:80

②Dockerfileを作成して下記を記述します

Dockerfile
FROM php:7.2-apache
RUN docker-php-ext-install pdo_mysql

③コンテナを停止させ、再起動する。

参考:開発環境をDockerにしたら、PDOでcould not find driverが出た

発生したエラー②

画像のアップロードをする際にexif_imagetype関数を使いバリテーションをしたかったのですが、エラーが出ました。
こちらも解決するためにDockerfileに追加で記述していきます。

Dockerfile
FROM php:7.2-apache
RUN apt-get update \
&& apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd  exif 

RUN docker-php-ext-install pdo_mysql

再度コンテナを停止させ、再起動します。

参考:ソフラボの技術ブログ

まとめ

最初はDockerfileを使用するのは難しいと思いdocker-compose.ymlで環境構築しました。
ですがエラーが発生したことによりDockerfileを使用してみて
よりdockerの理解を深めることができました。

0
0
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
0
0