Docker 네트워크 충돌 대응
This commit is contained in:
@@ -117,7 +117,7 @@ ssh [NAS_IP]
|
||||
|
||||
```bash
|
||||
# 프로젝트 디렉토리로 이동
|
||||
cd /volume1/docker/sori.studio
|
||||
cd /volume1/docker/projects/apps/
|
||||
|
||||
# 프로젝트 클론
|
||||
git clone https://git.sori.studio/zenn/sori.studio.git
|
||||
@@ -127,24 +127,23 @@ cd sori.studio
|
||||
|
||||
# 운영 환경 변수 설정
|
||||
# .env.production은 Git에 올리지 않는 운영 전용 파일
|
||||
cp .env.example .env.production
|
||||
cp .env.production
|
||||
# .env.production 파일에 운영 DB 연결 정보, 운영 전용 랜덤 비밀번호, APP_PORT=43118 입력
|
||||
# MEMBER_SESSION_SECRET은 ADMIN_PASSWORD와 다른 긴 난수 문자열로 반드시 입력
|
||||
# Docker 네트워크 대역이 NAS 기존 컨테이너와 겹치면 DOCKER_SUBNET을 다른 사설 대역으로 변경
|
||||
# Docker 내부 앱에서 PostgreSQL에 접근할 때는 sori-studio-db:5432 사용
|
||||
|
||||
# Docker 빌드 및 실행
|
||||
docker compose --env-file .env.production up -d
|
||||
docker compose --env-file .env.production up -d --build
|
||||
```
|
||||
|
||||
### 프로덕션 빌드 (NAS에서)
|
||||
### Docker 네트워크 충돌 대응
|
||||
|
||||
NAS에 Docker 컨테이너가 많이 실행 중이면 `could not find an available, non-overlapping IPv4 address pool` 오류가 날 수 있다. 이 프로젝트는 기본 `DOCKER_SUBNET=10.250.50.0/24`를 사용한다. 해당 대역도 NAS 내부망 또는 다른 Docker 네트워크와 겹치면 `.env.production`에서 예를 들어 아래처럼 바꾼 뒤 다시 실행한다.
|
||||
|
||||
```bash
|
||||
# 프로덕션 빌드
|
||||
npm run build
|
||||
|
||||
# 또는 Docker로 빌드
|
||||
docker build -t sori.studio:latest .
|
||||
docker run -d -p 3000:3000 sori.studio:latest
|
||||
DOCKER_SUBNET=10.250.51.0/24
|
||||
docker compose --env-file .env.production up -d --build
|
||||
```
|
||||
|
||||
### 포트
|
||||
@@ -153,6 +152,7 @@ docker run -d -p 3000:3000 sori.studio:latest
|
||||
- NAS Docker 외부: 43118
|
||||
- 컨테이너 내부: 3000
|
||||
- PostgreSQL 외부: 43119
|
||||
- Docker 내부 네트워크 기본값: `10.250.50.0/24`
|
||||
- HTTPS: 3001 (SSL 설정 시)
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user