diff --git a/docker/Dockerfile b/docker/Dockerfile index d366ac9..28b6257 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -29,6 +29,7 @@ ARG NEXT_PUBLIC_SENTRY_DSN ARG SENTRY_ORG ARG SENTRY_PROJECT ARG SENTRY_AUTH_TOKEN +ARG SENTRY_RELEASE ENV NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=$NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL @@ -36,6 +37,7 @@ ENV NEXT_PUBLIC_SENTRY_DSN=$NEXT_PUBLIC_SENTRY_DSN ENV SENTRY_ORG=$SENTRY_ORG ENV SENTRY_PROJECT=$SENTRY_PROJECT ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN +ENV SENTRY_RELEASE=$SENTRY_RELEASE ENV NEXT_TELEMETRY_DISABLED=1 RUN npx prisma generate diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index b677114..e9efe37 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -24,6 +24,12 @@ services: SENTRY_ORG: ${SENTRY_ORG} SENTRY_PROJECT: ${SENTRY_PROJECT} SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN} + # Resolves the sourcemap upload's release name. .git is excluded from + # the build context (see .dockerignore), so @sentry/nextjs can't + # auto-detect it via git and falls back to a literal "undefined" + # string, which GlitchTip's sourcemaps upload rejects. start.sh sets + # this from `git rev-parse --short HEAD` on the host before building. + SENTRY_RELEASE: ${SENTRY_RELEASE} image: pawfeed:latest container_name: pawfeed restart: unless-stopped diff --git a/docker/start.sh b/docker/start.sh index a288a8f..4ce1a34 100644 --- a/docker/start.sh +++ b/docker/start.sh @@ -11,5 +11,10 @@ if [ ! -f .env ]; then exit 1 fi +# Sentry/GlitchTip sourcemap upload needs a release name at build time. +# .git is excluded from the Docker build context, so it's resolved here +# on the host (where .git exists) and passed through as a build arg. +export SENTRY_RELEASE="$(git -C .. rev-parse --short HEAD)" + docker compose up -d --build echo "PawFeed is starting on http://localhost:4563"