Daily Develope

[Docker] Dockerfile 샘플 (PHP 환경 구축) 본문

MicroService/Docker

[Docker] Dockerfile 샘플 (PHP 환경 구축)

noggame 2022. 3. 29. 09:33

ㅇ PHP 개발환경 구축

FROM ubuntu:focal

ENV CLIENT_HOME="/opt/dat"
ENV TZ="Asia/Seoul"
ENV MY_GIT="https://giturl"

# apt mirror
WORKDIR /etc/apt/
RUN sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' sources.list
RUN sed -i 's/security.ubuntu.com/mirror.kakao.com/g' sources.list

# install pckgs. (with timezone)
RUN apt-get update -y
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get install -y vim net-tools iputils-ping
RUN apt-get install -y git
RUN apt-get install -y android-tools-adb android-tools-fastboot
RUN apt-get install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev libonig-dev libcurl4-openssl-dev

# clone src.
WORKDIR /opt
RUN git clone ${MY_GIT}

# extract php-libs
RUN mkdir -p ${CLIENT_HOME}/php_lib
WORKDIR ${CLIENT_HOME}
RUN tar -xvf ./install/php-src-PHP-8.0.7.tar -C ${CLIENT_HOME}/php_lib
RUN tar -xvf ./install/parallel-develop.tar -C ${CLIENT_HOME}/php_lib
# install php8.0.7
WORKDIR ${CLIENT_HOME}/php_lib/php-src-PHP-8.0.7
RUN ./buildconf
RUN ./configure --enable-debug --enable-zts --enable-pcntl --enable-mbstring --with-curl
RUN make -j4 && make -j4 install
# install php-parallel
WORKDIR ${CLIENT_HOME}/php_lib/parallel-develop
RUN phpize
RUN ./configure --enable-parallel --enable-parallel-coverage --enable-parallel-dev
RUN make -j4 && make -j4 install
RUN echo "extension=\"parallel\"" >> $(php --ini | grep "Configuration File (php.ini) Path" | awk '{print $5}')/php.ini
# delete install files
WORKDIR ${CLIENT_HOME}
RUN rm -rf ./install

# log dir
RUN mkdir -p ${CLIENT_HOME}/log

# home dir
WORKDIR ${CLIENT_HOME}

ㅇ 실행

# 현재 경로의 Dockerfile 실행
docker build -t {new_img_name}:{tag_name} .

# 특정 경로의 특정 파일명인 Dockerfile 실행
docker build -f {custom_dockerfile_name} -t {new_img_name}:{tag_name} {curstom_dockerfile_dir}
Comments