<aside>
</aside>
μλ νμΈμ! λλ§μ 8λΆ 'λ°°ν¬ λ° μ΄μ' λ λ²μ§Έ μκ°, 38κ°μ λλ€! π
μ§λ 37κ°μμλ Dockerfileμ μμ±νκ³ docker build
, docker run
λͺ
λ Ήμ μ¬μ©νμ¬ μ°λ¦¬ FastAPI μ ν리μΌμ΄μ
μ μ±κ³΅μ μΌλ‘ 컨ν
μ΄λννμ΅λλ€! π¦π³ μ΄μ μ°λ¦¬ μ±μ μ΄λμλ λμΌνκ² μ€νλ μ μλ λ©μ§ ν¨ν€μ§κ° λμμ£ !
νμ§λ§ μ€μ μΉ μ ν리μΌμ΄μ μ μ± μλ² νΌμλ§ λ©κ·Έλ¬λ μ€νλλ κ²½μ°λ λλ λλ€. λ³΄ν΅ λ°μ΄ν°λ² μ΄μ€(PostgreSQL λ±), μΊμ μλ²(Redis λ±), λ©μμ§ ν(RabbitMQ λ±) κ°μ μ¬λ¬ μλΉμ€λ€κ³Ό ν¨κ» λμν΄μΌ νμ£ . 37κ°μμ λ§λ μ± μ»¨ν μ΄λλ μ¬μ ν μΈλΆ λ°μ΄ν°λ² μ΄μ€μ μμ‘΄νκ±°λ, 컨ν μ΄λ λ΄λΆμ μμ SQLite νμΌμ μ¬μ©νκ³ μμ μ μμ΅λλ€. λ°μ΄ν°λ² μ΄μ€ μ체λ 컨ν μ΄λλ‘ ν¨κ» μ€ννκ³ κ΄λ¦¬ν μλ μμκΉμ? π€
μ΄λ² μκ°μλ λ°λ‘ μ΄ λ€μ€ 컨ν
μ΄λ μ ν리μΌμ΄μ
μ μμ½κ² μ μνκ³ μ€ν, κ΄λ¦¬ν μ μκ² ν΄μ£Όλ κ°λ ₯ν λꡬ, Docker Composeμ λν΄ λ°°μλλ€! docker-compose.yml
μ΄λΌλ μ€μ νμΌ νλλ‘ μ°λ¦¬ FastAPI μ± μ»¨ν
μ΄λμ PostgreSQL λ°μ΄ν°λ² μ΄μ€ 컨ν
μ΄λλ₯Ό ν¨κ» λμ°κ³ μ°κ²°νλ λ°©λ²μ μμλ³Ό κ±°μμ.
λλΆμ΄, λ°μ΄ν°λ² μ΄μ€ μ μ μ 보λ JWT λΉλ° ν€μ²λΌ λ―Όκ°νκ±°λ νκ²½λ³λ‘ λ¬λΌμ§λ μ€μ κ°λ€μ μ½λμ μ§μ λ£μ§ μκ³ μμ νκ³ μ μ°νκ² κ΄λ¦¬νλ λ°©λ², μ¦ νκ²½ λ³μμ .env
νμΌμ νμ©νλ λ°©λ²κΉμ§ ν¨κ» λ°°μ°κ² μ΅λλ€! μ΄μ κ°λ° νκ²½κ³Ό μ΄μ νκ²½μ λμ± κΉλνκ² λΆλ¦¬νκ³ κ΄λ¦¬ν΄ λ΄
μλ€! βοΈππ³
37κ°μ λ¨μΌ 컨ν
μ΄λλ₯Ό λμ΄, λ€μ€ 컨ν
μ΄λ(μλΉμ€) μ ν리μΌμ΄μ
μ ν¨μ¨μ κ΄λ¦¬ λκ΅¬μΈ Docker Compose μκ° λ° μ¬μ©λ² νμ΅. μ€μ μΉ μ±μ λ€μ μ»΄ν¬λνΈ(μΉ μλ², DB, μΊμ λ±)λ‘ κ΅¬μ±. Docker Composeλ YAML μ€μ νμΌ (docker-compose.yml
) νλλ‘ λ€μ€ 컨ν
μ΄λ νκ²½μ μ½κ² μ μ λ° κ΄λ¦¬.
FastAPI μ±κ³Ό PostgreSQL DB 컨ν
μ΄λλ₯Ό ν¨κ» μ€ννλ docker-compose.yml
μμ± μ€μ΅. κ° μλΉμ€(app
, db
) μ μ λ° build
, image
, ports
, volumes
, depends_on
, λ€νΈμν¬ μ€μ λ± κ΅¬μ± λ°©λ² νμ΅.
DB μ μ μ 보, API ν€ λ± λ―Όκ°/νκ²½λ³ μ€μ κ°μ νλμ½λ© μ§μ. **νκ²½ λ³μ(Environment Variables)**λ₯Ό ν΅ν κ΄λ¦¬ λͺ¨λ² μ¬λ‘ νμ΅. κ°λ° νκ²½μμ .env
νμΌ μμ± λ° Docker Compose, FastAPI μ½λ(os.getenv
)μμμ μ°Έμ‘° λ°©λ² μ΅λ. docker compose up/down
λͺ
λ Ήμ΄λ₯Ό μ΄μ©ν μ 체 μ± μ€νμ μ¬μ΄ μμ/μ€μ§ λ°©λ² νμ΅.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
docker-compose.yml
κΈ°λ³Έ ꡬ쑰 νμ
.docker-compose.yml
νμΌμ μ¬λ¬ μλΉμ€(μ: FastAPI μ±, PostgreSQL DB)λ₯Ό μ μνκ³ , build
, image
, ports
, volumes
, environment
, depends_on
λ±μ μ΅μ
μ μ€μ ..env
νμΌ μμ±/νμ©.os.getenv()
λ₯Ό μ¬μ©ν νκ²½ λ³μ μ½κΈ°λ‘ μμ .