From fc146b0e181c025974e9f9fcd6ee53644c95c078 Mon Sep 17 00:00:00 2001 From: bilalgursen Date: Sun, 26 Jul 2026 01:51:36 +0300 Subject: [PATCH] =?UTF-8?q?Docker:=20seed=20veritabanlar=C4=B1=20+=20entry?= =?UTF-8?q?point=20(yokatlas.db=20imaja=20g=C3=B6m=C3=BCl=C3=BCr,=20a?= =?UTF-8?q?=C3=A7=C4=B1l=C4=B1=C5=9Fta=20volume'e=20kopyalan=C4=B1r)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - .dockerignore: data/ içindeki sqlite dosyalarına build context izni - runner imajına data/ -> /app/seed kopyalanır - entrypoint: yokatlas.db her açılışta tazelenir, app.db sadece ilk kurulumda tohumlanır Co-Authored-By: Claude Fable 5 --- .dockerignore | 4 ++++ Dockerfile | 10 ++++++++-- scripts/docker-entrypoint.sh | 17 +++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 scripts/docker-entrypoint.sh diff --git a/.dockerignore b/.dockerignore index de4d3a4..2b6a833 100644 --- a/.dockerignore +++ b/.dockerignore @@ -9,3 +9,7 @@ node_modules !.env.example drizzle/ data/ +!data/app.db +!data/yokatlas.db +!data/yokatlas.db-wal +!data/yokatlas.db-shm diff --git a/Dockerfile b/Dockerfile index 65ac985..4c69e13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,8 +37,14 @@ COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public +# Seed veritabanları: entrypoint açılışta bunları /app/data volume'üne kopyalar +COPY data/ ./seed/ +COPY scripts/docker-entrypoint.sh ./docker-entrypoint.sh + # SQLite veri dizini -RUN mkdir -p /app/data && chown -R nextjs:nodejs /app/data +RUN chmod +x /app/docker-entrypoint.sh && \ + mkdir -p /app/data && \ + chown -R nextjs:nodejs /app/data /app/seed USER nextjs @@ -46,4 +52,4 @@ EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" -CMD ["node", "server.js"] +CMD ["/app/docker-entrypoint.sh"] diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100644 index 0000000..c5ac291 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +# yokatlas.db salt-okunur referans verisi: her deploy'da imajdaki güncel kopya volume'e yazılır +cp -f /app/seed/yokatlas.db /app/data/ +for ek in wal shm; do + if [ -f "/app/seed/yokatlas.db-$ek" ]; then + cp -f "/app/seed/yokatlas.db-$ek" /app/data/ + fi +done + +# app.db kullanıcı verisi: sadece volume'de yoksa (ilk kurulum) şema tohumu kopyalanır +if [ ! -s /app/data/app.db ] && [ -f /app/seed/app.db ]; then + cp /app/seed/app.db /app/data/ +fi + +exec node server.js