Skip to content
XpressEngine docker
Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
entrypoints
shell
.dockerignore
.gitignore
.travis.yml
Dockerfile
LICENSE
README.md

README.md

docker-xe

Build Status License Latest release

docker-xeXE(XpressEngine)을 docker에서 운영할 수 있는 컨테이너이다.

XE(XpressEngine)

XE <이미지 출처 : XpressEngine 공식사이트>

XE는 Naver 산하에 GNU LGPL 오픈소스 프로젝트로 진행되고 있는 PHP 기반의 CMS(Contents Management System)이다. XE는 **제로보드(Zeroboard)**로 부터 진화하여 제로보드XE 까지 명칭이 변경되다가 CMS 기능이 단순 게시판 기능보다 더욱 강력하게 되면서 board라는 명칭을 없애고 xE라는 명칭을 가지게 되었다. XE는 모듈화 방식으로 발전하여 XE-core, 애드온, 위젯, 모듈로 분리가 되며 각각 디자인을 다르게 관리할 수도 있어 확장성이 풍부하다.

XE 요구사항

XE의 요구사항은 다음과 같다.

  • PHP 5.3.0 이상
  • php.ini의 session_auto_start=Off 설정
  • XML 라이브러리
  • GD 라이브러리
  • ICONV
  • MySQL 4.1 이상 (또는 MariaDB, MS-SQL, CUBRID)

docker-xe

docker-xeXE를 docker 환경에서 운영하기 위한 컨테이너이다. 이것은 XE를 위해 서버에 복잡하게 웹 서버와 서버 설정을 하는 것을 생략하고 docker만 있다면 곧바로 실행하여 서비스를 할 수 있수 있다. docker-xe는 위에서 나열한 XE요구사항을 모두 적용할 뿐만 아니라 더 많은 라이브러리가 설치되어 있다.

  • Debian - jessie 운영체제
  • Apache 2.4.10
  • PHP 5.6.9
  • XML 라이브러리 2.9.1
  • GD 라이브러리 2.1.1
  • ICONV 라이브러리 2.19
  • MySQL 클라이언트 라이브러리 5.5.43 (PDO 버전 포함)
  • 기타 라이브러리 지원

docker-xe 쉘 인터피에스 사용방법

docker-xe는 docker의 사용을 더욱 편리하고 직관적으로 사용하기 위해서 shell 인터페이스 shell/xe.sh를 제공한다. shell 인터페이스는 bash를 사용한다. Ubuntu의 기본 쉘은 dash이다 /bin/bash로 쉘을 변경해서 아래와 같이 사용하면 된다.

/bin/bash shell/xe.sh build

이것은 파일에 실행권한을 줘서 좀 더 편리하게 사용할 수 있다.

chmod +x shell/xe.sh

실행권한을 부여하게 되면 다음과 같이 간단히 할 수 있다.

./shell/xe build

우리는 좀더 쉘 인터페이스를 편리하게 사용하기 위해서 다음과 같이 alias를 사용하기로 한다. 만약 docer-xe 경로가 /demo/docker-xe라면 다음과 같이 alias를 만든다.

alias xe='/demo/docker-xe/shell/xe'

설정 파일

docker-xe에 관한 설정 파일은 shell/config.sh로 이 파일에는 모든 설정 값을 지정할 수 있다. 아래는 기본적으로 제공하는 설정 값이다. docker-xe 이미지를 Mac OS X에서 진행하였기 때문에 volume을 지정하는 부분들이 boot2docker가 자동으로 마운트 시킬 수 있는 홈 디렉토리를 사용했다. linux 기반이라면 사용자가 필요에 따라 설정하면 된다.

############################################################
## docker project name
PROJECT_NAME="docker-xe"
############################################################
## docker configurations
DOCKER_USER="saltfactory"
DOCKER_VERSION="1.8.3"
DOCKER_NAME="xe"
DOCKER_IMAGE="$DOCKER_USER/$DOCKER_NAME:$DOCKER_VERSION"
############################################################
## container configurations
DOCKER_CONTAINER_NAME="demo-xe"
DOCKER_CONTAINER_PORT="7000"
############################################################
## container volumes
XE_HOME="/Users/saltfactory/shared/xe-core"
XE_FILES="/Users/saltfactory/shared/xe-core/files"
XE_LOGS="/Users/saltfactory/shared/logs"
############################################################

docker-xe 이미지 빌드

docker-xe 이미지를 만들기 위해서 xe 쉘 인터페이스에 build 옵션을 사용한다. 기본적으로 다음과 같이 XE 풀 패키지를 자동으로 설치하여 빌드하게 된다.

xe build

만약 XE 소스를 docker-xe 외부에서 사용기 원한다면 소스빌드를 진행하면 된다.

./xe build src

docker-xe 컨테이너 초기화

docker-xe를 성공적으로 빌드하면 초기 시작을 해야하는데 xe 쉘 인터페이스에 init 옵션으로 진행한다. 이 옵션은 빌드된 이미지를 사용하여 깨끗한 컨테이너를 최초로 실행하는 효과를 얻을 수 있다.

xe init

docker-xe 컨테이너 시작

docker-xe 컨테이너가 생성된 이후 중지되었을 경우 xe 쉘 인터페이스에 start 옵션으로 진행한다. 이 옵션은 가장 마지막에 사용한 컨테이를 다시 실행시키기 때문에 init올 만든 깨끗한 커테이너와 다를 수 있다.

xe start

docker-xe 컨테이너 재시작

docker-xe 컨테이너가 실행되고 있을 때 특별한 이유로 컨테이너를 다시 시작해야할 때 xe 쉘 인터페이스에 restart 옵션으로 진행한다.

xe restart

docker-xe 컨테이너 중지

docker-xe 컨테이너가 실행되고 있을 때 중지하기 위해 xe 쉘 인터페이스 stop 옵션으로 진행한다. 컨테이너 동작이 멈췄을 뿐 컨테이너는 여전히 존재하고 있는 상태로 만든다.

xe stop

docker-xe 컨테이너 삭제

docker-xe 컨테이너가 중지하고 있을 때 컨테이너를 완전히 삭제하기 위해 xe 쉘 인터페이스 rm 옵션으로 진행한다. 컨테이너가 멈춘 상태가 아닐경우는 컨테이너를 중지하고 컨테이너 삭제를 진행한다.

xe rm

docker-xe 컨테이너 로그

docker-xe 컨테이너의 apache2의 로그는 내 컴퓨터 ./shell/config.sh 파일에서 바로 확인할 수 있다.

xe logs

라이센스

XE는 GNU LGPL 오픈소스 라이센스 정책을 따르기 때문에 이 프로젝트 역시 GNU LGPL 라이센스를 적용한다.

기부하기

기부금은 연구활동과 블로그 운영에 사용됩니다.

기부방법은 PayPal을 이용하는 방법이 있습니다.

paypal button

You can’t perform that action at this time.