# Copyright 2022 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Dart Docker official images can be found here: https://hub.docker.com/_/dart
FROM us-docker.pkg.dev/flutter-dashboard/flutter/flutter

ENTRYPOINT []

# The pubspec.yaml file is needed to resolve dependencies, and must be copied before the packages.
WORKDIR /app
COPY pubspec.yaml .

# Packages are PATH dependencies of app_dart, and need to be copied/accessible.
WORKDIR /app/packages
COPY packages .

WORKDIR /app/app_dart
COPY app_dart .
WORKDIR /app/dashboard
COPY dashboard .
WORKDIR /app/analyze
COPY analyze .
WORKDIR /app/licenses
COPY licenses .
WORKDIR /app/dev
COPY dev .

WORKDIR /app/auto_submit
COPY auto_submit .
RUN flutter pub get

# Start server.
EXPOSE 8080
CMD ["/opt/flutter/bin/dart", "/app/auto_submit/bin/server.dart"]
