# 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 dart:stable

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

WORKDIR /app

# Copy app source code (except anything in .dockerignore).
COPY auto_submit .
RUN dart pub get

# Start server.
EXPOSE 8080
CMD ["/usr/lib/dart/bin/dart", "/app/bin/server.dart"]
