Sign inSign up

google/dart-runtime

Verified Publisher

By Google

•Updated over 4 years ago

Discontinued: please use the "dart" Docker Official Image.

Image
31

100K+

google/dart-runtime repository overview

⁠NOTE: This image is discontinued.

Please consider using the new Docker Official Images for Dart: https://hub.docker.com/_/dart⁠


⁠google/dart-runtime

google/dart-runtime⁠ is a docker⁠ base image that makes it easy to dockerize a standard Dart⁠ application.

It can automatically bundle a Dart application and its dependencies with a single line Dockerfile.

It is based on the google/dart-runtime-base⁠ base image.

⁠Usage

Create a Dockerfile in your Dart application directory with the following content:

FROM google/dart-runtime

To build a docker image tagged with my/app run:

docker build -t my/app .

To run this image in a container (assuming it is a server application listening on port 8080):

docker run -d -p 8080:8080 my/app

⁠Sample

See the sources⁠ for google/dart-hello⁠ based on this image.

⁠Notes

The image assumes that your application:

  • has the pubspec.yaml file listing its dependencies.
  • has a file named bin/server.dart as the entrypoint script.
  • listens on port 8080
  • all dependent packages can be retrieved when building the container

If you have package dependencies which do not meet the last requirement take a look at using either the base image google/dart-runtime-base⁠ or google/dart⁠.

⁠Example directory laoyout:
bin
  server.dart
packages
  ...
pubspec.yaml

When building your application docker image, ONBUILD triggers fetch the dependencies listed in the pubspec.yaml file and cache them appropriatly.

⁠Accessing the Observatory

The dart-runtime image enables the Observatory⁠ for the Dart VM running in the container. The Observatory is listening on the default port 8181. Just map that port to the host when running the app:

docker run -d -p 8080:8080 -p 8181:8181 my-app

If using boot2docker you can access the Observatory using the docker host network on http://192.168.59.103:8181/⁠ (replacing 192.168.59.103 with what you 'boot2docker ip' says).

⁠Passing VM flags

The dart-runtime image can receive options for the Dart VM through the environment variable DART_VM_OPTIONS.

docker run -d -p 8080:8080 \
    --env DART_VM_OPTIONS='--old_gen_heap_size=2048 --verbose-gc' \
    my/app

⁠Using this image with App Engine Managed VMs

If you are using this image with App Engine Managed VMs, the app.yaml file must be alongside the Dockerfile in the project directory.

You can set up Observatory access by adding the following to the app.yaml file:

network:
  forwarded_ports: ["8181"]

You can pass VM flags by adding the following to the app.yaml file:

env_variables:
  DART_VM_OPTIONS: --old_gen_heap_size=2048 --verbose-gc

Tag summary

Content type

Image

Digest

sha256:20efd786c…

Size

299 MB

Last updated

almost 5 years ago

docker pull google/dart-runtime

This week's pulls

Pulls:

59

Last week