Home [docker] Docerfile 과 docker-compose 로 php, nginx 구성하기
Post
Cancel

[docker] Docerfile 과 docker-compose 로 php, nginx 구성하기

docker기반 php, nginx 환경 구성하기

Dockerfile 이란


docker 는 이미 알고 있을 것이라고 생각한다.

Dockerfile 은 docker 이미지를 내 입맛대로 빌드하기 위한 설정 파일이다.

이미지를 만들 때, 필요한 작업들을 미리 선언해 둘 수 있다.

최종적으로 선언해 둔 작업들이 포함된 docker 이미지를 만들 수 있다.

1
2
3
4
5
6
7
8
9
10
11
FROM php:7.4.33-fpm #php:fpm 등 기반 이미지

#위의 기반 이미지에
#아래 작업들이 포함된 이미지가 만들어진다.
RUN apt update -y && apt upgrade -y

RUN docker-php-ext-install pdo pdo_mysql

RUN pecl install redis \
&& docker-php-ext-enable redis \
&& rm -rf /tmp/pear/

다양한 키워드가 있지만, 유용하다고 생각되는 키워드는 아래와 같다. 유용한 키워드

1
2
3
4
5
6
7
8
9
FROM : base image를 선언
EXPOSE : image로부터 외부로 노출할 포트 번호
ENV : 환경변수
RUN : docker image를 빌드할 때 실행됨, 라이브러리 설치할 때 
CMD : 이미지로부터 컨테이너를 생성하여 최초로 실행할 때 수행
ENTRYPOINT : 이미지 내에서 실행할 명령어, 항상실행 됨
WORKDIR : 컨테이너가 실행된 후 컨테이너 내부로 들어갔을 때의 기본 디렉토리
ADD : 호스트의 파일을 컨테이너 내부로 복사, 로컬 파일 뿐만 아니라 URL 도 사용가능, 압축 파일일 경우 해제하여 복사 
COPY : 호스트의 파일을 컨테이너 내부로 복사

ADD 와 COPY

docker-compose


여러개의 컨테이너를 한번에 만들어주는 도구이다.

docker-compsoe.yml 파일로부터 한번에 여러 컨테이너를 만들어준다.

Dockerfile 로부터 만들어지는 이미지를 기반으로 컨테이너를 생성할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "3.7"
services:
  
  pdphp:   #컨테이너 명
    # image: php:fpm   
    build:
      dockerfile: Dockerfile   #Dockerfile 에서 만들어진 이미지 기반
    volumes:    
      - .:/var/www/html   #현재 폴더를 컨테이너 내의 /var/www/html 폴더와 동기화
    ports:
      - "9000:9000"
  pdnginx:
    container_name: nginx
    image: nginx:latest
    volumes:
      - .:/var/www/html
      - ./default.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"
      - "443:443"

실행


1
2
$ docker-compose up   #이미지로부터 컨테이너 실행
$ docker-compose down

볼륨 마운트


docker-compose up 명령을 통해 컨테이너가 실행된다.

이 때, 공유된 볼륨이 있고 그 안에 php 파일이 있다면, 브라우저에서 페이지 확인이 가능하다.

혹시 볼륨 마운트 후에, 페이지 확인이 안되거나 파일이 안보인다면 docker의 sharing 설정을 해주자.

docker dashboard의 resources 설정

Docker Sharing

This post is licensed under CC BY 4.0 by the author.

[electron] config.gygi : no such file or directory 에러

[zepeto] 제페토 개발 환경 구성하기