새소식

PHP/PHP

PHP - Docker-Compose 환경 PHP 프로젝트 빌드 시 Composer 설치

  • -

개요

php, docker compose로 프로젝트를 진행하면서 composer를 설치하려는데 뭐 컨테이너를 따로 만들고 어쩌구 볼륨을 설정하고 어쩌구 이상하리만치 복잡하길래 간단한 방법을 만들어보았다.


파일

docker-compose.yml

기본 compose 파일로 composer를 쓰나 안 쓰나 차이는 없다.

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html

Dockerfile

Dockerfile에서 직접 composer를 설치하고, 라이브러리도 설치한다.

# PHP 7.4와 Apache 이미지 사용
FROM php:7.4-apache

# Composer 설치에 필요한 패키지 설치 (curl, unzip, git)
RUN apt-get update && apt-get install -y \
    curl \
    unzip \
    git

# Composer 설치
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# 작업 디렉토리 설정
WORKDIR /var/www/html

# 애플리케이션 파일 복사
COPY . /var/www/html/

# composer 라이브러리 설치 && Apache 서비스 시작
CMD bash -c "composer install --no-interaction --prefer-dist && apache2-foreground"

index.php

<?
require 'vendor/autoload.php'; // composer 라이브러리 autoload

use Carbon\Carbon; // 테스트용 라이브러리

$now = Carbon::now('Asia/Seoul'); // 현재 시간 출력
echo $now->toDateTimeString();

composer.json

{
    "require": {
        "nesbot/carbon": "^2.7.3" // 테스트용으로 사용할 php datetime 라이브러리
    }
}

후기

Dockerfile에서 북치고 장구치고 다 하게끔 만들어보았다. 이렇게 하면 컨테이너를 추가로 만들 필요도 없고 원래 하던대로 docker compose up 명령어 딸깍으로 composer를 사용할 수 있다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.