Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

Docker 를 이용한 간단 개발환경 구축

2020-11-18 by 편리

이제야 Docker 라니.. 많이 늦은 감이 있긴 한데.. 개발 과정에서 특정 버전의 PHP 환경에서 테스트를 해봐야할 경우가 생겨서.. 개발서버의 PHP 버전을 변경하는 방법도 있지만 기존에 개발된 소스들이 제대로 작동한다는 보장이 없기 때문에 가상 환경을 만들어서 테스트해야겠다는 생각이 들어서 Docker 를 이용한 개발환경을 구축하게 됐다. 이번에도 역시 기본 지식이 충분하지 않으니 많은 시행 착오를 겪어야만 했다.

Docker 와 Docker-compose 를 설치한다.

curl -s https://get.docker.com | sudo sh
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

디렉토리 구조는 아래와 같다.

.
├── Dockerfile
├── docker-compose.yml
└── public
    ├── index.php

Dockerfile 의 내용은 아래와 같다.

FROM ubuntu:20.04

MAINTAINER chicpro <chicpro@gmail.com>

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get -y dist-upgrade

RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends apt-utils

RUN apt-get -y install software-properties-common git iproute2 redis-server apache2 vim

RUN apt-get -y install libapache2-mod-php php-redis php7.4-cli php7.4-bcmath php7.4-bz2 php7.4-common php7.4-curl php7.4-dba php7.4-gd php7.4-json php7.4-mbstring php7.4-opcache php7.4-readline php7.4-soap php7.4-xml php7.4-xmlrpc php7.4-zip php7.4-ctype php7.4-pdo php7.4-redis php7.4-mysql php7.4-imagick php7.4-intl

RUN a2enmod rewrite

RUN sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/php/7.4/apache2/php.ini
RUN sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/php/7.4/apache2/php.ini

# Fix timezone issue
ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY ./000-default.conf /etc/apache2/sites-available/

EXPOSE 80

CMD ["apachectl", "-D", "FOREGROUND"]

docker-ompose.yml 파일의 내용은 아래와 같다.

version: '3.3'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    image: chicpro/ubuntu2004-apache2-php74
    container_name: ubuntu2004-apache2-php74
    ports:
      - "9001:80"
    restart: always
    volumes:
      - ./public:/var/www/html/
      - /tmp/mysql.sock:/var/run/mysqld/mysqld.sock

000-default.conf 파일의 내용은 아래와 같다.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

이런 환경을 구축하게 된 목적이 DB 데이터는 Host 의 그것을 그래도 사용하면서 특정 버전의 PHP 환경에서 테스트를 하기 위함이다. 그래서 /tmp/mysql.sock:/var/run/mysqld/mysqld.sock 를 추가해서 Docker Container 에서 Host의 mysql.sock 파일에 접근할 수 있도록 했다. 그리고 DB 계정은 localhost 가 아닌 % 로 설정해서 다른 호스트에서도 접근할 수 있도록 해줘야 한다.

githup repo : https://github.com/chicpro/docker-ubuntu2004-apache2-php74

Post navigation

Previous Post:

아이폰 12 Pro 개통기(feat. 데이터쉐어링)

Next Post:

[PHP] 방문자 로그 기록 및 방문자수 측정

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes