mirror of
https://github.com/timokz/flutter-vienna-hackathon-25.git
synced 2025-11-08 23:44:19 +01:00
39 lines
953 B
Docker
39 lines
953 B
Docker
# Build stage
|
|
FROM dart:3.5.0 AS build
|
|
WORKDIR /app
|
|
COPY . .
|
|
|
|
# Install dependencies and compile the server executable
|
|
RUN dart pub get
|
|
RUN dart compile exe bin/main.dart -o bin/server
|
|
|
|
# Final stage
|
|
FROM alpine:3.22
|
|
|
|
# Environment variables
|
|
ENV runmode=production
|
|
ENV serverid=default
|
|
ENV logging=normal
|
|
ENV role=monolith
|
|
|
|
# Copy runtime dependencies
|
|
COPY --from=build /runtime/ /
|
|
|
|
# Copy compiled server executable
|
|
COPY --from=build /app/bin/server server
|
|
|
|
# Copy configuration files and resources
|
|
COPY --from=build /app/config/ config/
|
|
COPY --from=build /app/web/ web/
|
|
COPY --from=build /app/migrations/ migrations/
|
|
|
|
# This file is required to enable the endpoint log filter in Insights.
|
|
COPY --from=build /app/lib/src/generated/protocol.yaml lib/src/generated/protocol.yaml
|
|
|
|
# Expose ports
|
|
EXPOSE 8080
|
|
EXPOSE 8081
|
|
EXPOSE 8082
|
|
|
|
# Define the entrypoint command
|
|
ENTRYPOINT ./server --mode=$runmode --server-id=$serverid --logging=$logging --role=$role
|