0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?