docker-compose로 쉽게 환경 구축 Apache2.4+PHP7.1+PostgreSQL9.6

직장에서 위의 환경이 필요하기 때문에 더 이상하고 싶지 않은 비망록으로 남겨 둡니다.



환경


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

  • 구성



    디렉토리 구성은 이런 느낌입니다.



    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

    아래 화면이 표시되면 성공



    기계 연결



    컨테이너 안으로 들어가
    $ docker exec -it test_web_1 bash
    
    # ls
    # docker  docker-compose.yml  index.php
    

    마지막으로



    docker-compose.yml이 너무 편리하고 힘들다.

    좋은 웹페이지 즐겨찾기