Files
workavia-mail-front/Dockerfile
2026-04-17 17:39:29 +07:00

51 lines
1.8 KiB
Docker

ARG FLUTTER_VERSION=3.38.9
FROM --platform=amd64 ghcr.io/instrumentisto/flutter:${FLUTTER_VERSION} AS build-env
ARG SENTRY_AUTH_TOKEN
ARG SENTRY_ORG
ARG SENTRY_PROJECT
ARG SENTRY_URL
ARG SENTRY_RELEASE
ARG VCS_REF
ARG GITHUB_SHA
WORKDIR /app
COPY . .
ENV GITHUB_SHA=$GITHUB_SHA \
SENTRY_ORG=$SENTRY_ORG \
SENTRY_PROJECT=$SENTRY_PROJECT \
SENTRY_URL=$SENTRY_URL \
SENTRY_RELEASE=$SENTRY_RELEASE
RUN ./scripts/prebuild.sh && \
if [ -z "$GITHUB_SHA" ]; then echo "GITHUB_SHA is required for SENTRY_DIST"; exit 1; fi && \
flutter build web --release --source-maps \
--dart-define=SENTRY_RELEASE=$SENTRY_RELEASE \
--dart-define=SENTRY_DIST=$GITHUB_SHA && \
if [ -n "$SENTRY_AUTH_TOKEN" ] && [ -n "$SENTRY_ORG" ] && [ -n "$SENTRY_PROJECT" ] && [ -n "$SENTRY_RELEASE" ] && [ -n "$GITHUB_SHA" ]; then \
echo "Sentry configuration detected, uploading sourcemaps..." && \
curl -sL https://sentry.io/get-cli/ | SENTRY_CLI_VERSION=2.20.7 bash && \
sentry-cli releases new "$SENTRY_RELEASE" && \
sentry-cli sourcemaps upload build/web \
--org "$SENTRY_ORG" \
--project "$SENTRY_PROJECT" \
--auth-token "$SENTRY_AUTH_TOKEN" \
--release "$SENTRY_RELEASE" \
--dist "$GITHUB_SHA" \
--url-prefix "~/" \
--validate \
--wait && \
sentry-cli releases finalize "$SENTRY_RELEASE" && \
echo "Sentry sourcemaps uploaded successfully"; \
else \
echo "Sentry configuration not complete, skipping sourcemap upload"; \
fi
FROM nginx:alpine
RUN apk add gzip
COPY --from=build-env /app/server/nginx.conf /etc/nginx
COPY --from=build-env /app/build/web /usr/share/nginx/html
EXPOSE 80
CMD gzip -k -r -f /usr/share/nginx/html/ && nginx -g 'daemon off;'