docs(deploy): чинить SQLITE_READONLY после перехода на не-root образ
quality / commitlint (push) Skipped
quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Successful in 8s
CD / publish (push) Successful in 24s
quality / commitlint (push) Skipped
quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Successful in 8s
CD / publish (push) Successful in 24s
./data и app.db, созданные старым root-контейнером, нужно один раз отдать uid 1000 (node) — иначе migrateSchema падает с SQLITE_READONLY.
This commit is contained in:
@@ -61,6 +61,7 @@ Traefik для сертификата создаёт TXT `_acme-challenge.auth
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p /opt/auth-portal/data
|
mkdir -p /opt/auth-portal/data
|
||||||
|
chown -R 1000:1000 /opt/auth-portal/data # контейнер работает от uid 1000 (node)
|
||||||
cd /opt/auth-portal
|
cd /opt/auth-portal
|
||||||
|
|
||||||
# из репозитория или curl:
|
# из репозитория или curl:
|
||||||
@@ -147,6 +148,17 @@ docker compose down
|
|||||||
# НЕ делайте down -v без бэкапа — сотрёт ACME (auth_portal_traefik_letsencrypt)
|
# НЕ делайте down -v без бэкапа — сотрёт ACME (auth_portal_traefik_letsencrypt)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Переход с root-образа (версии до не-root).** Контейнер теперь работает от
|
||||||
|
> uid 1000 (`node`). Если `./data` и `app.db` созданы старым контейнером под
|
||||||
|
> root, при старте будет `SqliteError: SQLITE_READONLY`. Один раз выполнить:
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> cd /opt/auth-portal
|
||||||
|
> docker compose down
|
||||||
|
> sudo chown -R 1000:1000 ./data
|
||||||
|
> docker compose up -d
|
||||||
|
> ```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Что внутри compose
|
## Что внутри compose
|
||||||
|
|||||||
Reference in New Issue
Block a user