์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- private subnet ec2 ๋ก์ปฌ ์ ์
- docker compose
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- aws ์ฟ ํฐ
- redis ์กฐํ
- redis ํ ์คํธ์ฝ๋
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- aws saa ํฉ๊ฒฉ
- @RestControllerAdvice
- ๋ค์ค ์ปจํ ์ด๋
- prod docker-compose
- Kafka
- Codedeploy ์ค๋ฅ
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- JPA
- s3 log ์ ์ฅ
- docker
- ์๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- AWS Certified Solutions Architect - Associate
- nGrinder
- ์คํํ๋ ๋ฏธ์ค
- ํ์ดํผ๋ฐ์ด์
- docker ps -a
- docker-compose kafka
- Entity
- Today
- Total
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
[Docker] ์ด์ ํ๊ฒฝ Docker Compose ์์ฑ & ์คํ๋ง๋ถํธ ์ปจํ ์ด๋ ์คํํ๊ธฐ ๋ณธ๋ฌธ
[Docker] ์ด์ ํ๊ฒฝ Docker Compose ์์ฑ & ์คํ๋ง๋ถํธ ์ปจํ ์ด๋ ์คํํ๊ธฐ
๐คRyusun๐ค 2024. 3. 13. 08:20ํ์๋ ๋ก์ปฌํ๊ฒฝ์์ ์ธํ ๋ฆฌ์ ์ด ๋๋ฒ๊น ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด ๋ก์ปฌํ๊ฒฝ์์๋ Redis์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋๋ง ๋์ ๋ค. ํ์ง๋ง ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ฐฐํฌ๋ฅผ ์ํด์๋ ์คํ๋ง๋ถํธ ์ปจํ ์ด๋๋ ๋์์ค์ผ ํ๋ค.
์ด์ํ๊ฒฝ์ ์ํ Redis + Mysql + Spring Boot ์ปจํ ์ด๋๋ฅผ๋์๋ณด์.
์ฐ์ ์ด์ํ๊ฒฝ์์ ์ฌ์ฉํ Docker Compose ํ์ผ์ ์์ฑํ์. ์ด์ ์ ๋ก์ปฌ ํ๊ฒฝ์ ์ํด ์์ฑํ๋ docker-compose-local.yml๊ณผ Dockerfile๊ณผ ๋์ผํ ๊ฒฝ๋ก์ docker-compose.yml ํ์ผ์ ์์ฑํด ์ค๋ค.
docker-compose.yml
version: "3.8"
services:
creditmarket-redis: # ์๋น์ค๋ช
container_name: creditmarket-redis # ์ปจํ
์ด๋๋ช
build:
dockerfile: Dockerfile
context: ./redis
image: ryusunny/creditmarket-redis
ports:
- "6379:6379"
creditmarket-db: # ์๋น์ค๋ช
container_name: creditmarket-db # ์ปจํ
์ด๋๋ช
restart: always
build:
dockerfile: Dockerfile
context: ./database
image: ryusunny/creditmarket-db
environment:
MYSQL_DATABASE: ${DB_USERNAME}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
volumes:
- ./database/config:/etc/mysql/conf.d
- ./database/init:/docker-entrypoint-initdb.d
ports:
- "3307:3306"
creditmarket-app: # ์๋น์ค๋ช
container_name: creditmarket-app # ์ปจํ
์ด๋๋ช
build: .
depends_on: # DB, REDIS ์ปจํ
์ด๋๊ฐ ์คํ๋ ๋ค์ WEB์ ์คํ์ํจ๋ค.
- creditmarket-db
- creditmarket-redis
image: ryusunny/creditmarket-app
environment:
SPRING_DATASOURCE_USERNAME: ${DB_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD}
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
ports:
- "80:8080" # ์ ๊ทผ ํฌํธ ์ค์ (์ปจํ
์ด๋ ์ธ๋ถ:์ปจํ
์ด๋ ๋ด๋ถ)
restart: always
# depends on์ ์คํ ์์๋ง ์ปจํธ๋กค ํ ๋ฟ,
# ์ปจํ
์ด๋ ์์ ์๋น์ค๊ฐ ์คํ๊ฐ๋ฅํ ์ํ์ธ์ง๊น์ง๋ ํ์ธ ํ์ง ์๊ธฐ ๋๋ฌธ์
# DB ๋๋ Redis๊ฐ ์์ง ์คํ๊ฐ๋ฅํ ์ํ๊ฐ ์๋์ฌ์ ์คํจํ๋ ๊ฒฝ์ฐ ์ฌ์์ ํ๋๋ก ์ค์
์ด์ ์ docker-compose-local.yml์ ์์ฑํ๋ redis์ database ์ค์ ์ ๋์ผํ๋ค.
์ฌ๊ธฐ์ ์ถ๊ฐ๋ก ์๋ก ๋์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋ ์ค์ ๊ฐ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
application.yml
๋์ปค ์ค์ ์ ๋คํ์ผ๋ฏ๋ก application.yml์ prod profile๋ฅผ ์ค์ ํด์ค๋ค.
์ด์ํ๊ฒฝ ์ค์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค url๋ถ๋ถ๊ณผ redis host ๋ถ๋ถ์ ์ ์ธํ ๋ก์ปฌ ์ค์ ๊ฐ์ด๋ ๋์ผํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค url ๋ถ๋ถ๊ณผ redis host๋ถ๋ถ์ docker-compose ํ์ผ์์ ์ง์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ช ๊ณผ redis ์๋น์ค ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
์ด์ ์ค์ ์ด ๋๋ฌ๋ค.
ํ๋ฒ ์คํ์ ํด๋ณด์
./gradlew clean build
docker-compose up --build
clean bulid๋ฅผ ํตํด jarํ์ผ์ ๋ค์ ์์ฑํด์ค๋ค.
๋์ปค ์ปดํฌ์ฆ๊ฐ ์คํ์ด ๋ ๋ ์ด๋ฏธ์ง๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ฉด ๊ทธ ์บ์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฒ ๋๋ค. docker-compose up --build์์ --build ์ต์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋น๋ ํด์ค๋ค.
์คํ์ ํ ํ ์ปจํ ์ด๋ 3๊ฐ๊ฐ ์ ๋์์ก๋์ง ํ์ธํด ๋ณด์
์ปจํ ์ด๋ 3๊ฐ๊ฐ ์ ๋์์ก๋ค!!
๋ค์ ๊ธ์ ์ด ์ปจํ ์ด๋๋ค์ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ฐฐํฌ๋ฅผ ํด๋ณผ ๊ฒ์ด๋ค.