Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Linux/Docker

[Docker] Dockerfile๋กœ XpressEngine ๊ตฌ์ถ•ํ•˜๊ธฐ

728x90

Dockerfile๋กœ XpressEngine ๊ตฌ์ถ•ํ•˜๊ธฐ


 

๐Ÿ“ XpressEngine์ด๋ž€?

ํ•œ๊ตญ์—์„œ ๊ฐœ๋ฐœ๋œ ์˜คํ”ˆ ์†Œ์Šค ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์›น ์‚ฌ์ดํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”Œ๋žซํผ์ด๋‹ค.

๐Ÿ“ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

mkdir xpress_maker; cd xpress_maker

๐Ÿ“ Dockerfile ์ž‘์„ฑ

vi Dockerfile
# ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋กœ CentOS 7 ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉ, ์ด ์ด๋ฏธ์ง€ ์œ„์— ๊ตฌ์ถ•.
FROM centos:7

# yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ์บ์‹œ๋ฅผ ์ •๋ฆฌ. ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ๋ถˆํ•„์š”ํ•œ ์บ์‹œ๋ฅผ ์ œ๊ฑฐ.
RUN yum clean all

# ์ด๋ฏธ์ง€์— ์„ค์น˜๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€ ์ตœ์‹  ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธ
RUN yum update -y

# wget, git, httpd๋ฅผ ์„ค์น˜
RUN yum -y install wget git httpd

# Remi ์ €์žฅ์†Œ์˜ ๋ฆด๋ฆฌ์Šค ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ. Remi ์ €์žฅ์†Œ๋Š” ์ถ”๊ฐ€์ ์ธ PHP ๋ฒ„์ „์„ ์ œ๊ณต.
RUN wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm

# ๋กœ์ปฌ์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ Remi ์ €์žฅ์†Œ ๋ฆด๋ฆฌ์Šค ํŒŒ์ผ์„ ์„ค์น˜.
RUN yum -y localinstall remi-release-7.rpm

# epel-release, yum-utils ์„ค์น˜. EPEL์€ CentOS ๋ฐ ๊ด€๋ จ ๋ฐฐํฌํŒ์šฉ ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ๊ณต.
RUN yum -y install epel-release yum-utils

# Remi ์ €์žฅ์†Œ์—์„œ PHP 7.4๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์„ฑํ™”.
RUN yum-config-manager --enable remi-php74

# PHP ๋ฐ ์ผ๋ถ€ ํ•„์ˆ˜ ํ™•์žฅ์„ ์„ค์น˜.
RUN yum -y install php php-fpm php-gd php-mysql php-xml

# XpressEngine ์†Œ์Šค ์ฝ”๋“œ GitHub์—์„œ ๊ฐ€์ ธ์™€ /var/www/html/xe ๋””๋ ‰ํ† ๋ฆฌ์— ํด๋ก .
RUN git clone https://github.com/xpressengine/xe-core.git /var/www/html/xe

# ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ /var/www/html/xe๋กœ ๋ณ€๊ฒฝ.
WORKDIR /var/www/html/xe

# /var/www/html/xe ๋””๋ ‰ํ† ๋ฆฌ์— files ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ.
RUN mkdir files

# ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ /var/www/html๋กœ ๋ณ€๊ฒฝ.
WORKDIR /var/www/html

# /var/www/html/xe ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ 707๋กœ ์„ค์ •.
RUN chmod -R 707 xe

# /var/www/html/xe ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ Apache ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน์— ์†ํ•˜๋„๋ก.
RUN chown -R apache:apache xe

# ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ํฌํŠธ 80์„ ๋…ธ์ถœ. Docker ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์—์„œ Apache ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก.
EXPOSE 80

# Apache๋ฅผ foreground ๋ชจ๋“œ๋กœ ์‹คํ–‰. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ Apache๊ฐ€ ์‹คํ–‰๋˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ Apache๋„ ์ข…๋ฃŒ๋˜๋„๋ก.
CMD httpd -D FOREGROUND

 

๐Ÿ“ ์ด๋ฏธ์ง€ ์ƒ์„ฑ

docker build -t xe:1.0 .

๐Ÿ“ mysql๋กœ db2 ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

docker container run -d --name db2 -e MYSQL_ROOT_PASSWORD=test123 -e MYSQL_DATABASE=xe mysql:5.7

๐Ÿ“ db2์™€ ์—ฐ๊ฒฐํ•˜๋Š” xe1 ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ (ํฌํŠธ 8889)

docker container run -d --name xe1 --link db2:mysql -p 8889:80 xe:1.0

๐Ÿ“ ์ ‘์†

์•„๋ž˜ ์ฃผ์†Œ๋กœ ์ ‘์†.

http://211.183.3.100:8889/xe

 

[ Input mysqli info ํŽ˜์ด์ง€ ]

- DB ID : root

- DB PW : test123

- DB Name : xe

- DB Hostname : 172.17.0.5

- DB Port : 3306

- Table Prefix : xe

 

(ํ˜ธ์ŠคํŠธ ๋„ค์ž„ ํ™•์ธํ•˜๊ธฐ)

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' db2

 

๐Ÿ“ ๋„์ปค ํ—ˆ๋ธŒ์— xe:1.0 ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ

docker tag xe:1.0 yoonhakyoung/rapaeng4:xe # tag
docker push yoonhakyoung/rapaeng4:xe # push

๐Ÿ“ ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ํ™•์ธ

 

 

์ฐธ๊ณ 

https://velog.io/@hyunshoon/Docker-%EB%8F%84%EC%BB%A4-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

[Docker] Dockerfile๋กœ ๋„์ปค ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ - ๋„์ปคํŒŒ์ผ๋กœ xpressengine ๊ตฌ์ถ•

๋„์ปค ์ด๋ฏธ์ง€๋งŒ๋“ค๊ธฐ ๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ -> commit tar ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ๋‚ด์šฉ์„ ์ด๋ฏธ์ง€๋กœ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ -> image save Dockerfile ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑํ•˜๊ธฐ. ์ผ

velog.io

 

728x90