chore(repo): дедуп formatAmount, пины образов, дефолты MinIO, доля any
Шаги 2.3 и 2.4 плана production-готовности: - lib/format.ts formatAmount вместо 2 локальных копий - пины тегов minio/rclone/ollama/traccar/pgvector + osrm по digest - minioadmin без дефолта (env required, dev-подсказки в .env.example) - 28 any в auto-transitions/shared типизированы из @shared/schema - удалён _tablefield_orig.txt - check/lint/build чисто, vitest 104/104
This commit is contained in:
@@ -43,7 +43,8 @@ services:
|
||||
start_period: 10s
|
||||
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
# Тег запинен: совпадает с версией на продакшене (RELEASE.2025-09-07T16-13-09Z)
|
||||
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
|
||||
profiles:
|
||||
- with-minio
|
||||
command: server /data --console-address :9001
|
||||
@@ -51,7 +52,8 @@ services:
|
||||
- "9000:9000" # S3 API (используется приложением)
|
||||
- "9001:9001" # MinIO Web Console (http://localhost:9001)
|
||||
environment:
|
||||
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-minioadmin}
|
||||
# Креды MinIO — только из .env, дефолтов нет: в production обязательно сменить minioadmin/minioadmin
|
||||
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:?MINIO_ACCESS_KEY is required}
|
||||
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:?MINIO_SECRET_KEY is required}
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
@@ -64,7 +66,8 @@ services:
|
||||
start_period: 15s
|
||||
|
||||
webdav:
|
||||
image: rclone/rclone:latest
|
||||
# Тег запинен: совпадает с версией на продакшене (rclone v1.74.0)
|
||||
image: rclone/rclone:1.74.0
|
||||
profiles:
|
||||
- with-minio
|
||||
entrypoint: /bin/sh
|
||||
@@ -76,7 +79,7 @@ services:
|
||||
--no-checksum
|
||||
:s3:$${MINIO_BUCKET:-files}
|
||||
--s3-provider=Minio
|
||||
--s3-access-key-id=$${MINIO_ACCESS_KEY:-minioadmin}
|
||||
--s3-access-key-id=$${MINIO_ACCESS_KEY:?MINIO_ACCESS_KEY is required}
|
||||
--s3-secret-access-key=$${MINIO_SECRET_KEY}
|
||||
--s3-endpoint=http://minio:9000
|
||||
--s3-no-check-bucket"
|
||||
@@ -85,7 +88,7 @@ services:
|
||||
environment:
|
||||
WEBDAV_USER: ${WEBDAV_USER:-admin}
|
||||
WEBDAV_PASSWORD: ${WEBDAV_PASSWORD:-}
|
||||
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
|
||||
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:?MINIO_ACCESS_KEY is required}
|
||||
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-}
|
||||
MINIO_BUCKET: ${MINIO_BUCKET:-files}
|
||||
restart: unless-stopped
|
||||
@@ -94,7 +97,8 @@ services:
|
||||
condition: service_healthy
|
||||
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
# Тег запинен: совпадает с версией на продакшене (ollama 0.30.10)
|
||||
image: ollama/ollama:0.30.10
|
||||
profiles:
|
||||
- with-ollama
|
||||
ports:
|
||||
@@ -138,7 +142,8 @@ services:
|
||||
start_period: 30s
|
||||
|
||||
traccar:
|
||||
image: traccar/traccar:latest
|
||||
# Тег запинен: совпадает с версией на продакшене (traccar 6.15.2)
|
||||
image: traccar/traccar:6.15.2
|
||||
container_name: traccar
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
@@ -164,7 +169,9 @@ services:
|
||||
# Map matching (привязка GPS-треков к дорогам) — OSRM, карта Приволжского округа.
|
||||
# Только внутренняя Docker-сеть (приложение ходит по http://osrm:5000).
|
||||
osrm:
|
||||
image: osrm/osrm-backend:latest
|
||||
# Пин по digest: тега v6.0.0 не существует, есть только latest
|
||||
# (digest совпадает с образом на продакшене на момент пина)
|
||||
image: osrm/osrm-backend:latest@sha256:af5d4a83fb90086a43b1ae2ca22872e6768766ad5fcbb07a29ff90ec644ee409
|
||||
container_name: osrm
|
||||
restart: unless-stopped
|
||||
command: osrm-routed --algorithm mld /data/region.osrm
|
||||
|
||||
Reference in New Issue
Block a user