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
๐ ๋์ปค ํ๋ธ์์ ํ์ธ
์ฐธ๊ณ
[Docker] Dockerfile๋ก ๋์ปค ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ - ๋์ปคํ์ผ๋ก xpressengine ๊ตฌ์ถ
๋์ปค ์ด๋ฏธ์ง๋ง๋ค๊ธฐ ๋์์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ด๋ฏธ์ง๋ก ๋ณํ -> commit tar ํ์ผ์ ์ด์ฉํ์ฌ ๋ด์ฉ์ ์ด๋ฏธ์ง๋ก ์ ์กํ๋ ๋ฐฉ์์ผ๋ก ์๋ก์ด ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ -> image save Dockerfile ์ด์ฉํ์ฌ ์ด๋ฏธ์ง ์์ฑํ๊ธฐ. ์ผ
velog.io
'Linux > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ (0) | 2024.02.02 |
---|---|
[Docker] Dockerfile ๋ช ๋ น์ด (0) | 2024.02.01 |
[Docker] Private Docker Registry๋ก ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ (0) | 2024.01.31 |
[Docker] ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ (0) | 2024.01.31 |
[Docker] ๋์ปค ์ปจํ ์ด๋ & ์ด๋ฏธ์ง ๋ช ๋ น์ด (0) | 2024.01.31 |