NAS 재배포 앱 이미지 빌드 유도

This commit is contained in:
2026-08-13 16:20:09 +09:00
parent 2b232d0b51
commit 0fe167a1ec
7 changed files with 16 additions and 4 deletions

View File

@@ -1,5 +1,7 @@
services:
sori-studio:
image: sori-studio:latest
pull_policy: build
build:
context: .
dockerfile: Dockerfile

View File

@@ -236,6 +236,7 @@ docker compose --env-file .env.production up -d --build
- `.env.production`은 Git에 포함하지 않는다. `git pull`로 덮어쓰이지 않는다. 값을 바꿀 때만 파일을 직접 수정한다.
- `public/uploads/` 업로드 파일은 Docker 볼륨(`./public/uploads`)에 있으므로, **이미지 파일만 추가·수정한 경우** 앱 재빌드 없이도 URL로 바로 보인다.
- 로컬에서 미리 확인하려면 `npm run verify` 후 NAS에서 위 명령을 실행하면 된다.
- UGREEN Docker 앱의 재배포가 너무 빨리 끝나고 앱 빌드 로그가 보이지 않으면 기존 이미지를 재사용한 것이다. 현재 Compose는 `sori-studio:latest`와 `pull_policy: build`로 앱 이미지를 다시 빌드하도록 선언하지만, NAS Docker 앱 버전이 이 값을 무시하면 터미널에서 `docker compose --env-file .env.production up -d --build`를 실행해야 한다.
컨테이너만 재시작하고 이미지는 그대로 두려면(환경 변수만 바꾼 경우 등):

View File

@@ -1,3 +1,7 @@
## 2026-08-13 v1.12.19 — GUI 재배포도 앱 이미지를 다시 빌드하게 유도한다
UGREEN Docker 앱의 재배포가 기존 컨테이너 재생성만 하고 앱 이미지 빌드 단계를 건너뛰면 `git pull` 이후에도 Nuxt 번들에는 이전 코드가 남는다. Compose 서비스에 앱 이미지 이름과 `pull_policy: build`를 함께 선언해 `docker compose up` 경로에서도 Compose가 소스 기반 빌드를 우선하도록 한다. 다만 GUI가 해당 Compose 속성을 무시하는 구버전이면 운영자는 터미널에서 `up -d --build`를 사용해야 한다.
## 2026-08-13 v1.12.18 — 관리자 권한 판별은 role을 우선 신뢰한다
회원 권한의 실제 기준은 `user_role`의 owner/admin이며, 레거시 `is_admin` 플래그만 공개 헤더와 공개 로그인에서 보면 소유자 계정이 관리자 진입 링크를 보지 못할 수 있다. 따라서 공개 인증 응답과 로그인 관리자 세션 발급은 `is_admin`과 `user_role` owner/admin을 함께 보고, 헤더도 같은 기준으로 `사이트 관리`를 표시한다. NAS 운영 볼륨은 이미 존재하는 고정 볼륨을 재사용하는 구조이므로 Compose에는 외부 볼륨 선언을 추가해 Docker 앱의 프로젝트명 불일치 경고를 줄인다.

View File

@@ -136,7 +136,7 @@
| 파일 | 용도 |
|------|------|
| Dockerfile | Nuxt 프로덕션 앱 이미지 빌드 |
| docker-compose.yml | Docker CLI·Buildx 가능 환경의 앱 빌드 포함 Compose 실행, 운영 PostgreSQL 고정 외부 볼륨 연결 |
| docker-compose.yml | Docker CLI·Buildx 가능 환경의 앱 빌드 포함 Compose 실행, `sori-studio:latest` 앱 이미지 재빌드 유도, 운영 PostgreSQL 고정 외부 볼륨 연결 |
## Nuxt 모듈

View File

@@ -1,5 +1,10 @@
# 업데이트 이력
## v1.12.19
- NAS Docker 앱 재배포가 기존 앱 이미지를 재사용하지 않도록 앱 서비스 이미지 이름과 `pull_policy: build` 선언 추가.
- GUI 재배포가 `docker compose up`만 실행하더라도 Compose가 앱 이미지를 다시 빌드하도록 배포 설정 보강.
## v1.12.18
- 공개 회원 관리자 권한 판별을 `is_admin`과 `user_role` owner/admin 기준으로 통일.

4
package-lock.json generated
View File

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

View File

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