NAS Docker 앱 이미지 실행 배포 설정 추가

This commit is contained in:
2026-08-13 15:11:27 +09:00
parent f3170f3908
commit 2f1314b46e
7 changed files with 78 additions and 3 deletions

39
docker-compose.nas.yml Normal file
View File

@@ -0,0 +1,39 @@
services:
sori-studio:
image: ${SORI_STUDIO_IMAGE:-sori-studio:latest}
container_name: sori-studio
env_file:
- ${ENV_FILE:-.env.production}
ports:
- "${APP_PORT:-43080}:3000"
volumes:
- ./public/uploads:/app/public/uploads
depends_on:
- sori-studio-db
networks:
- sori-studio-network
restart: unless-stopped
sori-studio-db:
image: postgres:16-alpine
container_name: sori-studio-db
env_file:
- ${ENV_FILE:-.env.production}
ports:
- "${DB_BIND_ADDRESS:-127.0.0.1}:${DB_PORT:-43081}:5432"
volumes:
- sori-studio-postgres:/var/lib/postgresql/data
- ./db/migrations:/docker-entrypoint-initdb.d:ro
networks:
- sori-studio-network
restart: unless-stopped
volumes:
sori-studio-postgres:
networks:
sori-studio-network:
driver: bridge
ipam:
config:
- subnet: ${DOCKER_SUBNET:-10.250.50.0/24}

View File

@@ -233,6 +233,25 @@ docker compose --env-file .env.production up -d --build
docker compose --env-file .env.production up -d
```
### UGREEN NAS Docker 앱 Buildx 우회
UGREEN NAS Docker 앱에서 `Docker Compose requires buildx plugin to be installed` 경고가 뜨면 NAS 앱이 `Dockerfile` 빌드를 직접 수행하지 못하는 상태다. 이때는 로컬에서 앱 이미지를 만든 뒤 NAS Docker 앱에 가져오고, NAS에서는 `build:`가 없는 `docker-compose.nas.yml`로 실행한다.
로컬 Mac에서 NAS용 이미지를 만든다. DXP6800 Pro 같은 Intel NAS 기준은 `linux/amd64`다.
```bash
docker buildx build --platform linux/amd64 -t sori-studio:latest --load .
docker save sori-studio:latest -o sori-studio-latest.tar
```
NAS Docker 앱에서 `sori-studio-latest.tar` 이미지를 가져온 뒤, Compose 생성 화면에는 `docker-compose.nas.yml` 내용을 사용한다. 이 파일은 앱 서비스를 `image: ${SORI_STUDIO_IMAGE:-sori-studio:latest}`로 실행하므로 NAS에서 Buildx 빌드를 시도하지 않는다.
SSH를 쓸 수 있는 NAS에서는 같은 파일로 아래처럼 실행할 수 있다.
```bash
docker compose -f docker-compose.nas.yml up -d
```
코드 변경 없이 `.env.production`만 수정했다면 `--build` 없이 `up -d`만으로 충분하다.
### Google 로그인 설정

View File

@@ -1,3 +1,7 @@
## 2026-08-13 v1.12.13 — UGREEN Docker 앱은 빌드 대신 이미지 실행 경로를 둔다
UGREEN NAS Docker 앱에서 Compose 프로젝트를 만들 때 Buildx 플러그인 없이 `build:` 서비스를 처리하지 못하는 환경이 확인됐다. 기본 `docker-compose.yml`은 Docker CLI나 Buildx가 있는 환경에서 기존처럼 Dockerfile 빌드를 수행하도록 유지하되, NAS GUI 배포에는 `build:`를 제거한 `docker-compose.nas.yml`을 별도로 둔다. 이 경로에서는 로컬에서 `sori-studio:latest` 이미지를 만든 뒤 NAS Docker 앱에 가져오고, NAS는 이미지를 실행만 하므로 Buildx 설치 여부에 막히지 않는다.
## 2026-07-29 v1.12.11 — CSP unknown은 가능한 한 구분해서 관찰한다
`frame-src unknown`처럼 출처가 비어 보이는 보고는 실제 외부 서비스 차단인지, 빈 iframe·`about:blank`·브라우저 확장 프로그램이 만든 보고인지 구분하기 어렵다. Report-Only 관찰 초반에는 이런 분류가 허용 목록 판단의 잡음을 크게 만들 수 있으므로, 빈 blocked-uri는 `empty`, `about:blank` 계열은 `about:`, 확장 프로그램 URL은 브라우저별 extension scheme으로 따로 집계한다. 이 값들은 외부 origin 허용 후보가 아니라 원인 추적용 신호로만 본다.

View File

@@ -122,6 +122,14 @@
| docs/update-log/v1.11.md | 방문자용 업데이트 공지 초안(v1.10 개발 구간) |
| docs/update-log/v1.12.md | 방문자용 업데이트 공지 초안(v1.11 개발 구간) |
## Docker
| 파일 | 용도 |
|------|------|
| Dockerfile | Nuxt 프로덕션 앱 이미지 빌드 |
| docker-compose.yml | Docker CLI·Buildx 가능 환경의 앱 빌드 포함 Compose 실행 |
| docker-compose.nas.yml | UGREEN NAS Docker 앱처럼 Buildx 없이 가져온 앱 이미지를 실행하는 Compose 설정 |
## Nuxt 모듈
| 파일 | 용도 |

View File

@@ -1,5 +1,10 @@
# 업데이트 이력
## v1.12.13
- UGREEN NAS Docker 앱에서 Buildx 없이 가져온 앱 이미지를 실행할 수 있도록 `docker-compose.nas.yml` 추가.
- NAS Docker 앱 Buildx 경고 우회용 로컬 이미지 빌드·가져오기 배포 절차 문서화.
## v1.12.12
- UGREEN NAS Docker 앱 배포에서 `--env-file` 없이 Compose를 실행해도 PostgreSQL 환경 변수 치환 경고가 뜨지 않도록 DB 서비스 중복 환경 변수 선언 제거.

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "sori.studio",
"version": "1.12.12",
"version": "1.12.13",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sori.studio",
"version": "1.12.12",
"version": "1.12.13",
"hasInstallScript": true,
"dependencies": {
"@nuxtjs/tailwindcss": "^6.14.0",

View File

@@ -1,6 +1,6 @@
{
"name": "sori.studio",
"version": "1.12.12",
"version": "1.12.13",
"private": true,
"type": "module",
"imports": {