5. expose_vs_ports
docker-compose.yml ํ์ผ์ service ํ์์ syntax ๋ก expose ์ ports ๊ฐ ์๋ค. ๋๋ค ๋คํธ์ํฌ ํฌํธ ์ค์ ๊ณผ ๊ด๋ จ๋ ๋ช ๋ น์ด์ธ๋ฐ, ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ฐจ์ด์ ์ ์ค๋ช ํ๋ค.
expose
ํด๋น ์ปจํ ์ด๋๊ฐ ์ฌ์ฉํ๋ ํฌํธ๋ฅผ ๋ฌธ์ํ
๋์ผํ Docker ๋ด๋ถ ๋คํธ์ํฌ ๋ด์์ ๋ค๋ฅธ ์ปจํ ์ด๋๋ค์ด ์ด ํฌํธ๋ฅผ ํตํด ์ฐ๊ฒฐํ ์ ์๋๋ก ํจ
expose์ ์ ์ํ ํฌํธ๋ ์ธ๋ถ์๋ ๋ ธ์ถ๋์ง ์์ผ๋ฉฐ, ์ค์ง ๋์ผํ ๋คํธ์ํฌ ๋ด์ ๋ค๋ฅธ ์ปจํ ์ด๋๋ค๋ง ์ ๊ทผ
ports
์ปจํ ์ด๋์ ํฌํธ๋ฅผ ํธ์คํธ์ ํฌํธ์ ๋ฐ์ธ๋ฉํ์ฌ ์ธ๋ถ ๋คํธ์ํฌ์์๋ ์ ๊ทผํ ์ ์๋๋ก ํจ
ports๋ฅผ ํตํด ์ปจํ ์ด๋์ ํฌํธ์ ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ ์ ์์
expose ์ ports ์ ์ฐจ์ด์
expose ๋ ๋ด๋ถ ๋คํธ์ํฌ์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ, ports๋ ์ธ๋ถ ๋คํธ์ํฌ์์๋ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค. ๊ฐ๋ฐ์๋ expose๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์๋น์ค๋ค์ด ์ปจํ ์ด๋์ ํต์ ํ ์ ์์์ ๋ช ์ํ ์ ์์ผ๋ฉฐ, ports๋ ์ธ๋ถ ์์ฒญ์ ์ปจํ ์ด๋๋ก ๋ผ์ฐํ ํ ๋ ์ฌ์ฉํ๋ค.
๋ค์์ ๊ฐ๋จํ docker-compose.yml ํ์ผ ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ web ์๋น์ค๊ฐ 5000 ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ฅผ ์ธ๋ถ์ ๋ ธ์ถ์ํค๋ฉฐ, db ์๋น์ค๋ 5432 ํฌํธ๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ด๋ถ์ ์ผ๋ก๋ง ๋ ธ์ถํฉ๋๋ค.
์์
version: '3.8'
services:
db:
container_name: postgres
image: postgres:14.11-alpine
restart: always
ports:
- '5433:5432'
volumes:
- ./docker/db_data:/var/lib/postgresql/data
networks:
- nestjs-backend
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=backend
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
app:
image: node-local:0.1
container_name: node-local
build:
context: .
dockerfile: ./docker/Dockerfile.local
ports:
- '8000:80'
volumes:
- ./src:/app/src
command: >
sh -c "npm run mig:local:run && npm run start"
networks:
- nestjs-backend
depends_on:
db:
condition: service_healthy
networks:
nestjs-backend:
driver: bridge
์๋น์ค db๋ ํธ์คํธ์ 5433 ํฌํธ์ ์ปจํ ์ด๋์ 5432ํฌํธ๋ฅผ ๋งคํํ๋ค. ๋ฐ๋ผ์, ์ธ๋ถ์ 5433 ํฌํธ์์ ์ ๊ทผํ๋ฉด, ์ด ์์ฒญ์ ๋ด๋ถ ์ปจํ ์ด๋์ ํฌํธ 5432 ํฌํธ๋ก ๋งคํ๋๋ค. ์ด ์ค์ ์ผ๋ก, ํธ์คํธ ์ปดํจํฐ์ datagrip๊ณผ ๊ฐ์ IDEํด์์ ์ปจํ ์ด๋์ database ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ports๋ฅผ ์ญ์ ํ๊ณ , expose 5432๋ง ์ค์ ํ๋ค๋ฉด, ์ธ๋ถ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๊ณ , app ๊ณผ ๊ฐ์ ์๋น์ค์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
์๋น์ค app์ ํธ์คํธ์ 8000 ํฌํธ์ ๋ด๋ถ ์ปจํ ์ด๋์ 80ํฌํธ๋ฅผ ๋งคํํ์ฌ, ์ธ๋ถ์ 8000 ํฌํธ์์ ๋ค์ด์ค๋ ์์ฒญ์ ๋ด๋ถ ์ปจํ ์ด๋์ 80ํฌํธ์ ์ฐ๊ฒฐํ๋ค.
Last updated