LoginSignup
6
8

More than 3 years have passed since last update.

docker-composeで簡単に環境構築Apache2.4+PHP7.1+PostgreSQL9.6

Last updated at Posted at 2019-11-15

仕事で上記の環境が必要になったのでもうやりたくない備忘録として残す

環境

  • Mac for Docker
  • Apache2.4
  • PHP7.1
  • PostgreSQL9.6

構成

ディレクトリ構成はこんな感じです。

スクリーンショット 2019-11-15 16.19.43.png

Dockerfile

docker/webDockerfile という名前のファイルを作成し以下の内容で記述

PHPのバージョンを変えたければFROMの php:7.3-apache という風に変えればいけるはず。

docker/web/Dockerfile
FROM php:7.1-apache

COPY ./php.ini /usr/local/etc/php/

RUN set -ex apk --no-cache add postgresql-dev libpq-dev && \
    apt-get update && apt-get install -y libpq-dev \
    vim \
    less \
    && docker-php-ext-install pdo pdo_pgsql pgsql mbstring

同階層で php.ini ファイルを作成します。

docker/web/php.ini
[Core]
display_errors = On
error_reporting = E_ALL
error_log = /var/log/apache2/error.log
log_errors = On

[Date]
date.timezone = 'Asia/Tokyo'

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = auto
mbstring.http_input = auto
mbstring.http_output = auto
mbsting.encoding_translation = Off
mbstring.detect_order = auto

docker-compose.yml

PostgreSQLのバージョン変えたければ image: postgres:9.3 の部分を変更してください。
またはポートを変えたいときは ports: -8110:80 を変更してください。

docker-compose.yml
version: '3'

services:
  web:
    build: ./docker/web/
    ports:
      - 8110:80
    volumes:
      - .:/var/www/html
    depends_on:
      - db
  db:
    image: postgres:9.3
    ports:
      - 5433:5432
    volumes:
      - ./docker/db:/docker-entrypoint-initdb.d

公開ファイルを編集

適当に今回は index.php を上げるので phpinfo を表示させよう

index.php
<?php

phpinfo();

実行

実行してみる

docker-compose up -d

立ち上がってるか確認してみる

$ docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
0e5271d55548        4b77e94c903a        "docker-php-entrypoi…"   38 minutes ago      Up 38 minutes       0.0.0.0:8110->80/tcp     test_web_1
d7ae129bf106        postgres:9.3        "docker-entrypoint.s…"   38 minutes ago      Up 38 minutes       0.0.0.0:5433->5432/tcp   test_db_1

ブラウザ確認

先ほどのdocker-compose.ymlをそのまま使用している人なら以下のリンクから飛べるはず
localhost:8110

下の画面が表示されていれば成功

スクリーンショット 2019-11-15 16.39.00.png

マシン接続

コンテナ内に入ってみる

$ docker exec -it test_web_1 bash

# ls
# docker  docker-compose.yml  index.php

最後に

docker-compose.ymlが便利すぎて辛い。

6
8
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
6
8