From f9207e6d0ca34bc9533fd4010e539bd1aea7ac30 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Dec 2025 03:34:46 +0300 Subject: [PATCH] docker --- mnemo_cards_backend/Dockerfile | 36 ++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/mnemo_cards_backend/Dockerfile b/mnemo_cards_backend/Dockerfile index 1f21ccf..90f0210 100644 --- a/mnemo_cards_backend/Dockerfile +++ b/mnemo_cards_backend/Dockerfile @@ -1,15 +1,26 @@ # syntax=docker/dockerfile:1.7 # --- Build stage ------------------------------------------------------------ +# Note: This Dockerfile should be built from the parent directory: +# docker build -f mnemo_cards_backend/Dockerfile -t mnemo_cards_backend . + FROM dart:stable-sdk AS build WORKDIR /app -# Cache dependencies -COPY pubspec.* ./ +# Copy all sources at once (simpler and more efficient) +COPY mnemo_cards_common /app/mnemo_cards_common +COPY mnemo_cards_common_backend /app/mnemo_cards_common_backend +COPY mnemo_cards_backend /app/mnemo_cards_backend + +# Get dependencies (path dependencies will resolve correctly) +WORKDIR /app/mnemo_cards_common RUN dart pub get -# Copy sources -COPY . . +WORKDIR /app/mnemo_cards_common_backend +RUN dart pub get + +WORKDIR /app/mnemo_cards_backend +RUN dart pub get # Compile to native executable RUN dart compile exe lib/main.dart -o /app/server @@ -25,24 +36,25 @@ RUN apt-get update \ # App binary COPY --from=build /app/server /app/server -# Static/assets needed at runtime (adjust as required) -# COPY public /app/public -# COPY data /app/data +# Static/assets needed at runtime +COPY --from=build /app/mnemo_cards_backend/public /app/public +COPY --from=build /app/mnemo_cards_backend/data /app/data # Writable dirs for isar/backups by default -RUN mkdir -p /app/isar /app/backups +RUN mkdir -p /app/isar /app/backups && \ + chmod -R 755 /app/isar /app/backups ENV PORT=8081 \ ADDRESS=0.0.0.0 \ ISAR_DIR=/app/isar \ BACKUP_DIR=/app/backups \ - WORKDIR=/app - + APP_WORKDIR=/app EXPOSE 8081 -# Healthcheck (tune path if different) +# Healthcheck - use existing public endpoint HEALTHCHECK --interval=15s --timeout=5s --start-period=10s --retries=5 \ - CMD curl -f http://127.0.0.1:${PORT}/health || exit 1 + CMD curl -sf http://127.0.0.1:8081/api/v2/subscriptions/plans || exit 1 +# Use environment variables with fallbacks CMD ["/app/server", "-a", "0.0.0.0", "-p", "8081", "--isar", "/app/isar", "--backup", "/app/backups", "--workdir", "/app"]