diff --git a/dart/README-short.txt b/dart/README-short.txt new file mode 100644 index 000000000..eb5a59c34 --- /dev/null +++ b/dart/README-short.txt @@ -0,0 +1 @@ +Dart is a client-optimized language for fast apps on any platform. diff --git a/dart/content.md b/dart/content.md new file mode 100644 index 000000000..2a5487f37 --- /dev/null +++ b/dart/content.md @@ -0,0 +1,56 @@ +# What is Dart? + +Dart is a client-optimized language for developing fast apps on any platform. Its goal is to offer the most productive programming language for multi-platform development, paired with a flexible execution runtime platform for app frameworks. For more details, see https://dart.dev. + +By utilizing Dart's support for ahead-of-time (AOT) [compilation to executables](https://dart.dev/tools/dart-compile#exe), you can create very small runtime images (~10 MB). + +%%LOGO%% + +## Using this image + +We recommend creating small runtime images by leveraging Dart's support for ahead-of-time (AOT) [compilation to executables](https://dart.dev/tools/dart-compile#exe). This enables creating small runtime images (~10 MB). + +The following `Dockerfile` performs two steps: + +1. Using the Dart SDK in the `dart:stable` image, compiles your server (`bin/server.dart`) to an executable (`server`). + +2. Assembles the runtime image by combining the compiled server with the Dart VM runtime and it's needed dependencies located in `/runtime/`. + +```Dockerfile +# Specify the Dart SDK base image version using dart: (ex: dart:2.12) +FROM dart:stable AS build + +# Resolve app dependencies. +WORKDIR /app +COPY pubspec.* . +RUN dart pub get + +# Copy app source code and AOT compile it. +COPY . . +RUN dart compile exe bin/server.dart -o /server + +# Build minimal serving image from AOT-compiled `/server` and required system +# libraries and configuration files stored in `/runtime/` from the build stage. +FROM scratch +COPY --from=build /runtime/ / +COPY --from=build /server /bin/ + +# Start server. +EXPOSE 8080 +CMD ["/bin/server"] +``` + +If you have [Docker Desktop](https://www.docker.com/get-started) installed, you can build and run on your machine with the `docker` command: + +```shell +$ docker build -t dart-server . +$ docker run -it --rm -p 8080:8080 --name myserver dart-server +``` + +When finished, you can stop the container using the name you provided: + +```shell +$ docker kill myserver +``` + +Maintained with ❤️ by the [Dart](https://dart.dev) team. diff --git a/dart/github-repo b/dart/github-repo new file mode 100644 index 000000000..992e54d29 --- /dev/null +++ b/dart/github-repo @@ -0,0 +1 @@ +https:/github.com/dart-lang/dart-docker diff --git a/dart/license.md b/dart/license.md new file mode 100644 index 000000000..8fe5dfd4b --- /dev/null +++ b/dart/license.md @@ -0,0 +1 @@ +View [license information](https://github.com/dart-lang/sdk/blob/master/LICENSE) for the software contained in this image. diff --git a/dart/logo.png b/dart/logo.png new file mode 100644 index 000000000..d091c28f0 Binary files /dev/null and b/dart/logo.png differ diff --git a/dart/maintainer.md b/dart/maintainer.md new file mode 100644 index 000000000..178b907de --- /dev/null +++ b/dart/maintainer.md @@ -0,0 +1 @@ +The Dart Docker Team