๐ Docker compose๋ก Wordpress ๊ตฌ์ถํ๊ธฐ
์๋ํ๋ ์ค๊ฐ์๊ฑด ์ค์นํ๊ธฐ ์ฌ์ด๊ฑด ๋ง์ง๋ง, ๊ท์ฐฎ์ ๊ตฌ์์ด ๋ง๋ค. php์ค์ ๋ถํฐ db, ์น์๋ฒ ๋ฑ๋ฑ ์ค์ ํด์ค ๊ฒ์ด ํ๋๊ฐ๊ฐ ์๋๋ค. ํนํ php๋ถ๋ถ์ ์๋ชปํ๋ฉด ์๋ฌ๋ ๋ง์ด๋๋ ๋ถ๋ถ์ด๋ผ ๋์ฑ ๊ท์ฐฎ๋ค.
์๋ํ๋ ์ค๋ ์ญ์ Docker-compose๋ก ์ค์น ๊ฐ๋ฅํ๋ค.
1# docker-compose.yml
2
3version: "3.9"
4
5services:
6 db:
7 image: mysql:5.7
8 volumes:
9 - ./db:/var/lib/mysql
10 restart: always
11 environment:
12 MYSQL_ROOT_PASSWORD: [๋น๋ฐ๋ฒํธ]
13 MYSQL_DATABASE: wordpress
14 MYSQL_USER: wordpress
15 MYSQL_PASSWORD: [๋น๋ฐ๋ฒํธ]
16
17 wordpress:
18 depends_on:
19 - db
20 image: wordpress:latest
21 volumes:
22 - ./wp/:/var/www/html
23 ports:
24 - "8000:80"
25 restart: always
26 environment:
27 WORDPRESS_DB_HOST: db:3306
28 WORDPRESS_DB_USER: wordpress
29 WORDPRESS_DB_PASSWORD: [๋น๋ฐ๋ฒํธ]
30 WORDPRESS_DB_NAME: wordpress$ ls
$ docker-compose.yml
$ docker-compose up -dlocalhost:8000์ผ๋ก ์ ์ํ๋ฉด ์๋ํ๋ ์ค ์ค์ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค. ๋ณดํต Wordpress๋ฅผ ์ฌ์ฉํ๋ฉด Nginx๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ฒ๋๋๋ฐ, Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ๊ฒ php์ค์ ์ ํด์คํ์์์ด Caddy๋ก reverse-proxy๋ง ํด์ฃผ๋ฉด๋๋ค.
# Caddyfile
example.com {
localhost:8000
}Wordpress์ ๊ฐ๋จํ ๊ฐ๋ฐ์ด ๋ชฉ์ ์ด๋ผ๋ฉด Docker๋งํผ ํธํ ํด์ด ์์ ๊ฒ์ด๋ค. Production์ ์ฌ์ฉํ๋ ๊ฒ์ ๋์ฒด๋ก ์ถ์ฒํ์ง ์๋ ๋ฏ ํ๋ค. ํฐ ๋ฌธ์ ๋ ์์ ์ ์์ง๋ง, ์๋ํ๋ ์ค๋ ๊ทธ ํน์ฑ์ ๋ด๋ถ ํ์ผ๋ค์ด ๊ฐ๋ณ์ ์ธ๋ฐ, ์ด๋ฐ ๊ฐ๋ณ์ ์ธ ํ์ผ๋ค์ volume์ผ๋ก ๋ฃ์ด์ผ ํ๋ ๊ฒ์ด Docker๋ต์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.