์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- s3 log ์ ์ฅ
- ํ์ดํผ๋ฐ์ด์
- docker-compose kafka
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- ์๋ฐ
- aws saa ํฉ๊ฒฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- AWS Certified Solutions Architect - Associate
- redis ํ ์คํธ์ฝ๋
- ์คํํ๋ ๋ฏธ์ค
- Kafka
- private subnet ec2 ๋ก์ปฌ ์ ์
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- prod docker-compose
- @RestControllerAdvice
- docker ps -a
- docker compose
- Entity
- docker
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- redis ์กฐํ
- JPA
- Codedeploy ์ค๋ฅ
- nGrinder
- aws ์ฟ ํฐ
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- ๋ค์ค ์ปจํ ์ด๋
- Today
- Total
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
[Docker] Docker Compose ํ์ผ๋ก ๋ค์ค ์ปจํ ์ด๋ ํ๊ฒฝ ๊ตฌ์ฑํ๊ณ ์คํํ๊ธฐ(feat. ์ค๋ฅ๋ค) ๋ณธ๋ฌธ
[Docker] Docker Compose ํ์ผ๋ก ๋ค์ค ์ปจํ ์ด๋ ํ๊ฒฝ ๊ตฌ์ฑํ๊ณ ์คํํ๊ธฐ(feat. ์ค๋ฅ๋ค)
๐คRyusun๐ค 2024. 3. 10. 03:17ํ์๋ ํ๋ก์ ํธ์์ redis ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด docker-compose ํ์ผ์ ์ฌ์ฉํ์ฌ redis ์ปจํ ์ด๋๋ mysql ์ปจํ ์ด๋ 2๊ฐ๋ฅผ ๋์ธ๋ ค๊ณ ํ๋ค.
์ฐ์ ๋์ปค์ ๋์ปค ์ปดํฌ์ฆ์ ์ฐจ์ด๋ฅผ ์์๋ณด์.
Docker
- Docker๋ ๋จ์ผ ์ปจํ ์ด๋๋ฅผ ๋น๋, ์คํ ๋ฐ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ
- Docker ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋น๋, ์ปจํ ์ด๋ ์คํ, ๋ก๊ทธ ํ์ธ, ์ปจํ ์ด๋ ์ค์ง ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋จ์ผ ์น ์๋ฒ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋๋ฅผ ๋์ธ ๋ Docker๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Docker Compose
- Docker Compose๋ ์ฌ๋ฌ ์ปจํ ์ด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ ์คํํ๊ธฐ ์ํ ๋๊ตฌ
- ์ฌ๋ฌ ๊ฐ์ ์๋น์ค, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ํฌํจํ๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ ์ํ ์ ์์ต๋๋ค.
- docker-compose.yml ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ๊ตฌ์ฑ์ ๊ธฐ์ ํ๊ณ , ์ด ํ์ผ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ํ ๋ฒ์ ๋์ธ ์ ์๋ค.
๊ทธ๋ผ ๋์ปค ์ปดํฌ์ฆ๋ฅผ ํ์ฉํด์ ์ปจํ ์ด๋๋ค์ ๋์๋ณด์!
Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ธฐ ์ํ ์ค์ ํ์ผ์ธ Dockerfile๊ณผ ์ปจํ ์ด๋๋ก ์ด๋ฃจ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ ์ํ๊ณ ์คํํ๊ธฐ ์ํ ์ค์ ํ์ผ์ธ docker-compose.yml๋ฅผ ๋ง๋ค์ด์ค์ผํ๋ค.
ํ ๋๋ ํ ๋ฆฌ ์๋์ database, redis ๋๋ ํ ๋ฆฌ ํ์์ Dockerfile์ ์์ฑํ๊ณ ์ฌ์ง๊ณผ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
FROM
๋ช
๋ น์ด๋ฅผ ํตํด์ ์ด๋ค ๋์ปค ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์ง ๋ช
์ํ๋ค.
ENV TZ=Asia/Seoul
์ปจํ
์ด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก UTC ์๊ฐ์ ๋ฐ๋ผ๋ณด๊ณ ์์ผ๋๊น ํ๊ตญ์๊ฐ์ผ๋ก ์ค์ ํด์ค๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐํน ํ๊ธ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ ๋ฆฌ ํ์, config ๋๋ ํ ๋ฆฌ ์๋ mysql.cnf ํ์ผ์ ์ถ๊ฐํด์ฃผ์.
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
[mysqldump]
default-character-set=utf8mb4
์ด์ ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ ์์ฑํ์.
๋ฃจํธ ๋๋ ํ ๋ฆฌ์ docker-compose-local ํ์ผ์ ์์ฑํ๋ค.
ํด๋น ํ์ผ์ ์คํ์ํฌ ๋ ๋์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋ ์ ๋ณด๋ฅผ ๋ช ์ํด์ค๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ถ๊ฐํด์ค์ผ ํ๋ค.
volume ๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ธ์ด ๊นจ์ง์ง ์๊ฒ ์ค์ ํ mysql.cnfํ์ผ ์์น๋ฅผ ๋ช ์ํ๋ค. ์ด ๋ถ๋ถ์ ์ถ๊ฐํด์ ์ปจํ ์ด๋๊ฐ ์ฐธ์กฐํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ธฐํ๋ฅผ ํ ์ ์๋๋ก ํ๋ค. ๋จผ์ ํธ์คํธ ๋๋ ํ ๋ฆฌ์ ์๋ ์์ฑํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ณ : ๋์ปค๊ฐ ๋ฐ๋ผ๋ณด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ๋ ๊นํ๋ธ์ ์ฌ๋ผ๊ฐ๋ ์๋๋ ์ ๋ณด๋ผ์ ์ธ๋ถ์์ ํ๊ฒฝ๋ณ์๋ก ์ฃผ์
ํด์ค๋ค. ์ด์ .env ํ์ผ์ ๋ง๋ค์ด ์ธ๋ถ์ ๊ณต๊ฐ๋์ง ๋ง์์ผํ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ .gitignore์๋ ์ถ๊ฐํด์ค์ผํ๋ค.
์์ฑํ ํด๋น ํ์ผ์ ๋์ปค ์ปดํฌ์ฆ๊ฐ ์คํ์ด ๋ ๋ ์๋์ผ๋ก ์ด ํ์ผ์ ์ฐธ์กฐํด์ ํ๊ฒฝ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๋ค.
๋ก์ปฌ์์ ์ฌ์ฉํ DB, Redis ๋์ปคํ์ผ์ ์์ฑ์ ํ์ผ๋, ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ ์คํ์์ผ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ๋์ค๊ฐ ์ปจํ
์ด๋์ ์ํด์ ์คํ์ด ๋๋์ง ํ์ธ์ ํด๋ณด์.
์ฐ์ ๋์ปค๊ฐ ์คํ๋์ด์ผํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ฃผ์.
docker-compose -f docker-compose-local.yml up
docker-compose up : Docker Compose๋ก ์ ์๋ ์๋น์ค๋ค์ ์์ํ๊ณ ์ปจํ
์ด๋๋ฅผ ์์ฑํ์ฌ ์คํํ๋ ๋ช
๋ น์ด
-f : ์ด๋ค ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ ์คํ์ํฌ๊ฒ์ธ๊ฐ ์ง์
ํ์๋ ํด๋น ๋ช ๋ น์ด๋ฅผ ์คํ์์ผฐ๋๋ฐ...์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
mysql์ด๋ ์ฐ๊ฒฐ์ด ์๋๋ค๋๋ป์ธ๋ฐ ์ ๋ฒ์ ๋น์ทํ ์ค๋ฅ๊ฐ ์์์๋ ํฌํธ๋ฅผ ๋ณ๊ฒฝํด์ ํด๊ฒฐํ์ ์ด ์์ด ํฌํธ๋ฅผ ๋ณ๊ฒฝํด๋ณด๊ธฐ๋ก ํ๋ค.
ํ์๋ 3308๋ก ๋ฐ๊ฟ์ค๊ฒ์ด๋ค.
์ฐ์ ๋์ปค ์ปดํฌ์ฆ ํ์ผ์์ mysql ํฌํธ๋ฅผ 3308:3308 ๋ก ๋ฐ๊ฟ์ค๋ค.
๊ทธ๋ฆฌ๊ณ mysql_root_password๋ ์ฐ์ ๋ช ์ํด์ค๋ค. ์ถํ mysql ์ค๋ฅ๋ก ์ธํด mysql ์ปจํ ์ด๋๋ก ์ ์ํ๊ธฐ ์ํด์๋ค.
๋ค์ docker-compose -f docker-compose-local.yml up ๋ช ๋ น์ด๋ฅผ ์คํํ๋๋ ์ ์คํ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ mysql workbench๋ก ๊ฐ์ ์ฐ๊ฒฐ์๋ํด๋ณด๋๊น
Communications link failure. The last packet sent successfully to the server was 0 milliseconds age. The driver has not received any packets from the server.
์๋ฌ๋จ๋ฉด์ ์ฐ๊ฒฐ์ด ์๋์๋ค...;;ใ ใ
์คํ์ค์ธ mysql ์ปจํ ์ด๋ 3308ํฌํธ๋ก ์ ์ฐ๊ฒฐ๋์๋๋ฐ...ใ ใ
์ด์ฌํ ์ฝ์งํ๊ณ ์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ์๋ค. ํ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋๋ฉด ์๋ ๋ธ๋ก๊ทธ๋ฅผ ํตํด ํด๊ฒฐํ ์ ์๋ค.
Docker ์ mysql ์ค์น ํ workbench ์ฐ๊ฒฐ ์ค๋ฅ!?
Docker ์์ mysql ์ปจํ ์ด๋ ์ค์ ์ ๊ธฐ๋ณธ ํฌํธ(3306) ์ด ์๋ ๋ค๋ฅธ ํฌํธ๋ก ์ค์ ํ์๋ค. ํ ์คํธ๋ฅผ ์ํด์ workbench ์์ ์ฐ๊ฒฐ ์๋๋ฅผ ํ๋๋ฐ ์ค๋ฅ๊ฐ ์๊ฒผ๋ค. docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1
hy-ung.tistory.com
์์ ๋ฐฉ๋ฒ์ ์ ์ฉํ๊ณ ๋ค์ mysql ์ปจํ ์ด๋๋ฅผ ์คํ์์ผฐ๋๋ ๋๋์ด ์ ์คํ๋๋ค.!!!
์ด์ ์คํ๋ง๋ถํธ์ ์ฐ๊ฒฐ์ ์๋ํด๋ณด์.
application.yml์์ db ์ redis ์ค์ ์ ์ ์ด์ค๋ค.
์ค์ ํด์คํ ์คํ๋ง๋ถํธ๋ฅผ ์คํ์ํค๋ฉด ์ ์คํ๋๋ค.
mysql workbench๋ ์ฐ๊ฒฐํด๋ณด๋ฉด ์ ์ฐ๊ฒฐ๋๋ค.
ํ๋ฌ ์คํธ๋ ์ค ํ๋ฃจ๋ง์ ๋ฐ์๋ค...ใ
๋!!!ใ