Docker images for the Dart programming language (https://dart.dev)

Overview
Issues
  • Request to support multi arch images for additional arm architectures

    Request to support multi arch images for additional arm architectures

    opened by subfuzion 20
  • Copy pubspec.lock file

    Copy pubspec.lock file

    Opening to track a codereview comment by @jonasfj:

    We probably should copy in both pubspec.yaml and pubspec.lock.

    Assuming the idea is to make a layer that can be cached and reuse when rebuilding the image.

    @athomas pointed out that the old image did: ONBUILD ADD pubspec.* /app/

    opened by mit-mit 9
  • Initial poc

    Initial poc

    First cut at an official repo with input from @tianon.

    This initial version:

    • Contains a template (./Dockerfile.template)
      • bases on debian:buster-slim
      • that pulls releases from GCS
      • tests checksums
    • directories for the stable and beta channels
    • subdirectories under the channel directories for distributions (currently only buster)

    I've tested it with the examples under the examples directory. It works great with the Dart Functions Framework and eliminates the need for a dedicated runtime image as initially planned.

    cla: yes 
    opened by subfuzion 6
  • Determine best format for the AOT runtime image

    Determine best format for the AOT runtime image

    Currently the runtime image assumes that you compile your server app to a Dart exe.

    Should we consider copying in https://dart.dev/tools/dartaotruntime to the image, and then serve the app from even smaller AOT snapshots rather than a full exe?

    opened by mit-mit 6
  • Add git so that dart pub get works for pubspecs with git dependencies

    Add git so that dart pub get works for pubspecs with git dependencies

    At present git isn't part of the base image or included in the Dockerfile template, so when a Dockerfile using FROM dart tries to run dart pub get the result is a sequence of:

    Git command is not "git": Pub failed to run subprocess `git`: ProcessException: No such file or directory
      Command: git --version
    Git command is not "git.cmd": Pub failed to run subprocess `git.cmd`: ProcessException: No such file or directory
      Command: git.cmd --version
    

    This can be fixed by adding git to the apt-get section of the Dockerfile e.g.

    RUN set -eux; \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            ca-certificates \
            curl \
            openssh-client \
            unzip \
            dnsutils \
            git \
        ; \
    

    The overall package diff (comparing apt list --installed between the existing dart image and one with git added) ends up being:

    22a23,24
    > git-man/now 1:2.20.1-2+deb10u3 all [installed,local]
    > git/now 1:2.20.1-2+deb10u3 amd64 [installed,local]
    41a44
    > libcurl3-gnutls/now 7.64.0-4+deb10u2 amd64 [installed,local]
    46a50,51
    > liberror-perl/now 0.17027-2 all [installed,local]
    > libexpat1/now 2.2.6-2+deb10u1 amd64 [installed,local]
    52a58,59
    > libgdbm-compat4/now 1.18.1-4 amd64 [installed,local]
    > libgdbm6/now 1.18.1-4 amd64 [installed,local]
    84a92
    > libpcre2-8-0/now 10.32-5 amd64 [installed,local]
    85a94
    > libperl5.28/now 5.28.1-6+deb10u1 amd64 [installed,local]
    117a127,128
    > perl-modules-5.28/now 5.28.1-6+deb10u1 all [installed,local]
    > perl/now 5.28.1-6+deb10u1 amd64 [installed,local]
    

    resulting in an extra 76MB used by the raw image, which becomes 34MB when compressed on Docker Hub (for x64 arch).

    Obviously people can workaround this by putting apt-get install -y git into their own Dockerfiles using FROM dart, and even create their own build images with git added. But as dart pub get is such a common thing to run, the various trade offs of image size, build times etc. would favour having a key ecosystem dependency like git in place.

    opened by cpswan 5
  • Add a docker build GitHub Actions workflow

    Add a docker build GitHub Actions workflow

    Fixes #7.

    cla: yes 
    opened by athomas 5
  • Dockerfile with Arm support

    Dockerfile with Arm support

    In response to the ask from @athomas in #11 here's a PR with the Dockerfile I've been using to create multi platform builds including arm64 and armv7.

    cla: yes 
    opened by cpswan 4
  • installing with docker ...  Could not find a file named

    installing with docker ... Could not find a file named "pubspec.yaml" in "/app"

    I tried to follow docker installation. unfortunately, the given docker content and/or the command to create fails. the following output should be showing the problem because it is all that is shown.

    C:\Workspace\dart>docker build -t dart-server .
    
    [+] Building 4.5s (9/14)
     => [internal] load build definition from Dockerfile                                                                                                                                                        0.0s 
     => => transferring dockerfile: 735B                                                                                                                                                                        0.0s 
     => [internal] load .dockerignore                                                                                                                                                                           0.0s 
     => => transferring context: 34B                                                                                                                                                                            0.0s 
     => [internal] load metadata for docker.io/library/dart:stable                                                                                                                                              3.1s 
     => [auth] library/dart:pull token for registry-1.docker.io                                                                                                                                                 0.0s 
     => [build 1/7] FROM docker.io/library/dart:[email protected]:76d0bf1a79e33bd6e104275aba3d8a1e8479705323ec0e8b00ced40616024c7b                                                                                  0.0s 
     => [internal] load build context                                                                                                                                                                           0.0s 
     => => transferring context: 2B                                                                                                                                                                             0.0s 
     => CACHED [build 2/7] WORKDIR /app                                                                                                                                                                         0.0s 
     => CACHED [build 3/7] COPY pubspec.* ./                                                                                                                                                                    0.0s
     => ERROR [build 4/7] RUN dart pub get                                                                                                                                                                      1.1s
    ------
     > [build 4/7] RUN dart pub get:
    #9 0.892 Could not find a file named "pubspec.yaml" in "/app".
    ------
    executor failed running [/bin/sh -c dart pub get]: exit code: 66
    
    
    opened by yilmazdurmaz 3
  • Fix license

    Fix license

    Align with the naming standard used by the Dart project elsewhere

    cla: yes 
    opened by mit-mit 3
  • Some refactoring

    Some refactoring

    This is just a bit of refactoring/restructuring to make the things we still need to do a bit clearer and to iterate somewhat on the README content. The content under _docker-library is ultimately intended to be removed from this repo and become pull requests to two other repos:

    • https://github.com/docker-library/docs
    • https://github.com/docker-library/official-images

    We could work directly with clones of those, but it might be easier to have all the content in this repo while we iterate on it.

    Also note that I followed the pattern used by the official image for Node.js (which has docker-library/docs/node/README.me point to nodejs/docker-node/README.md for how to use the image, rather than the other way around like the Go team does; since we're following the Node model a bit more by maintaining our own official repo on dart-lang outside of the docker-library org, this probably makes more sense for us.

    cla: yes 
    opened by subfuzion 2
  • Usage instructions

    Usage instructions

    HI!

    I'm in the process of dockerizing an application that uses dart 2.9.3. To that end I'm trying to use this repository to generate the correct Dockerfile, since the oldest available image is 2.12 (unless I use the deprecated Google images which are 300MB).

    I'm not really well versed in the Dart ecosystem, so I'm having some trouble getting the files in the scripts directory to do what I think they should.

    Any advice would be greatly appreciated, thanks!

    opened by raymondboswel 0
  • Incorrect permissions on /usr/lib/dart/bin on linux aarch64 2.14.4 build

    Incorrect permissions on /usr/lib/dart/bin on linux aarch64 2.14.4 build

    This prevents the dart command from being used by a non-root user.

    Steps to reproduce (on M1 mac mini)

    docker run --rm -it dart:stable
    [email protected]:~# ls -l /usr/lib/dart
    total 32
    -rw-r--r--  1 root root 1502 Oct 13 02:12 LICENSE
    -rw-r--r--  1 root root  981 Oct 13 02:12 README
    drwx------  5 root root 4096 Oct 13 03:11 bin
    -rw-r--r--  1 root root  928 Oct 13 03:00 dartdoc_options.yaml
    drwxr-xr-x  3 root root 4096 Oct 13 02:54 include
    drwxr-xr-x 26 root root 4096 Oct 13 03:04 lib
    -rw-r--r--  1 root root   41 Oct 13 03:00 revision
    -rw-r--r--  1 root root    7 Oct 13 03:00 version
    

    This would be fixed by with RUN chmod 755 /usr/lib/dart/bin

    opened by aebrahim 0
  • How to execute healthcheck without curl

    How to execute healthcheck without curl

    How to perform healthcheck shelf service without curl in docker swarm stack?

    Should i use curlimages/curl instead scratch? Or maybe run dart runtime with flag and check working instance with http request?

    opened by PlugFox 1
  • Add

    Add "$HOME/.pub-cache/bin" to the PATH

    It would be great if the "$HOME/.pub-cache/bin" path would be part of the image's PATH variable:

    One case this is interesting is for a CI step which installs an executable dart package via dart pub global activate.

    If the mentioned path would be in PATH those executables could be run using their name directly and omitting recompilation on multiple calls.

    opened by Wikiwix 0
  • Deprecate/discontinue google/dart and dart-lang/dart_docker

    Deprecate/discontinue google/dart and dart-lang/dart_docker

    With the official images, we should start telling people to migrate from the old images so that we can eventually sunset our use of google/dart and archive the dart-lang/docker_dart (especially because it's easily confused with dart-lang/dart-docker)

    opened by athomas 4
  • Use distroless for runtime images?

    Use distroless for runtime images?

    GoogleContainerTools/distroless

    "Distroless" images contain only your application and its runtime dependencies. They do not contain package managers, shells or any other programs you would expect to find in a standard Linux distribution.

    The main benefit would seem to be image signing with cosign, though BusyBox might come in handy at times.

    opened by cpswan 4
Owner
Dart
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Dart
🍝 restaurant menu app made with flutter inspired by this design https://goo.gl/jChLBV

Menu Flutter Todo Make background colors that changes with PageView Add custom tab indicators Change food prices Make cart animation Customize card sh

Braulio Cassule 551 Nov 30, 2021
https://dribbble.com/shots/3812962-iPhone-X-Todo-Concept Made With Flutter

?? FlutterTodo ?? Install Note: Make sure your Flutter environment is setup. In the command terminal, run the following commands: $ git clone https://

Marc L. 516 Nov 25, 2021
It's a universal app template to have a great animated splash screen and liquid slider. Just change the animation if you want (rive) and change the images or colours according to your app.

liquid A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Zikyan Rasheed 26 Oct 28, 2021
Download files from Firebase Storage with Flutter. List all images, videos, or other files from Firebase and download them.

Flutter Tutorial - Download Files From Firebase Storage Download files from Firebase Storage with Flutter. List all images, videos, or other files fro

Johannes Milke 16 Nov 8, 2021
An app to pick, upload and display images from camera and gallery with size and extension constraints.

image_uploader A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Ehmad Saeed⚡ 3 May 24, 2021
Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your device and upload them to Firebase.

Flutter Tutorial - Upload Files To Firebase Storage Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your devic

Johannes Milke 21 Nov 20, 2021
Flutter plugin for selecting images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/text/filters.

advance_image_picker Flutter plugin for selecting multiple images from the Android and iOS image library, taking new pictures with the camera, and edi

Weta Vietnam 64 Nov 24, 2021
Android App written with Flutter/Dart to navigate medium.com without limitations.

Medium Unlimited An Android application written with Flutter/Dart to read medium.com without limitations. Features Read medium without reading limits

null 13 Nov 21, 2021
Dart client library to interact with Supabase Storage

storage-dart Dart client library to interact with Supabase Storage. Contributing Fork the repo on GitHub Clone the project to your own machine Commit

Supabase 14 Nov 12, 2021
Pure Dart Client for Nakama Server 🌟🥰🤩

Nakama Flutter Client ?? ?? ?? ?? Nakama is an open-source scalable game server. This is a Flutter client for Nakama written in pure dart and supports

Oliver Brunsmann 20 Oct 6, 2021
Dart / Flutter package that allows discovering network devices in local network (LAN).

lan_scanner Dart / Flutter package that allows discovering network devices in local network (LAN). Note: This library is intended to be used on Class

null 5 Aug 27, 2021
Dart, Flutter, Google Cloud, and ranked voting!

Try it out Hosted at https://knarlyvote.com tl;dr A (work-in-progress) demonstration of: (1) a full-stack Flutter application utilizing Firebase and G

Kevin Moore 22 Oct 29, 2021
Addons to supabase dart (and Flutter), to make development easier.

supabase_addons Make great apps with a great backend! Supabase is an open source Firebase alternative. It has support for auth, database and storage u

Bruno D'Luka 16 Sep 30, 2021
Introductory course to learn Dart/Flutter

Flutter Workshop About Introductory course to learn mobile development using Dart/Flutter. The course is structured to allow you to select the content

rosie 16 Nov 16, 2021
A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter

Klutter A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter Background This is a project

Mark Winckle 24 Nov 29, 2021
Dart client for Typesense

Typesense Dart client library for accessing the HTTP API of Typesense search engine. Note: This package is still under development. Version 0.2.0 will

Typesense 20 Nov 15, 2021
A powerful Http client for Dart, which supports Interceptors, FormData, Request Cancellation, File Downloading, Timeout etc.

dio_http A powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout

null 48 Nov 24, 2021
Functional programming in Dart and Flutter. All the main functional programming types and patterns fully documented, tested, and with examples.

Fpdart Functional programming in Dart and Flutter. All the main functional programming types and patterns fully documented, tested, and with examples.

Sandro Maglione 127 Nov 30, 2021
An flutter package to use DevIcons https://devicon.dev/

dev_icons This flutter package allows you to use all the Dev Icons. You can view the icons catalog on devicon.dev Installation In the dependencies: se

Festus Olusegun 18 Aug 23, 2021
MobX for the Dart language. Hassle-free, reactive state-management for your Dart and Flutter apps.

Language: English | Português | Chinese mobx.dart MobX for the Dart language. Supercharge the state-management in your Dart apps with Transparent Func

MobX 2k Nov 27, 2021
This is a mobile application that goals to build a quiz about programming subjects writter with Flutter.

❓ DevQuiz A mobile application being built with NLW5 (an event from Rockeatseat - https://app.rocketseat.com.br/). This application goals to build a q

Samilly Nunes 16 Sep 15, 2021
Manage the state of your widgets using imperative programming concepts.

Imperative Flutter Manage the state of your widgets using imperative programming concepts. Setup Intall imperative_flutter package in pubspec.yaml dep

Jeovane Santos 4 Apr 23, 2021
Dart language version of Persian-Tools

Persian tools Persian Tools dart package which you can use in all platforms Features Adding ordinal suffixes Converting Persian words to number Conver

Persian Tools 44 Nov 9, 2021
Quiz App to conduct online quiz developed with flutter framework and dart language

Online Quiz App A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Parag Patil 5 Nov 24, 2021
Upper is a open source back-end framework based on the Dart language.

What is Upper? Upper is a open source back-end framework based on the Dart language. With it, it is possible to automatically generate a gRPC API for

Andriws Luna 38 Aug 22, 2021
This is the self learning of mine about Dart Language

Dart Tutorial These are dart files what iam self studied And I think to share my knowlage with others from sharing this repo as public Still Adding so

Madhusha Prasad 5 Jun 21, 2021
Dart wrapper via dart:ffi for https://github.com/libusb/libusb

libusb Dart wrapper via dart:ffi for https://github.com/libusb/libusb Environment Windows(10) macOS Linux(Ubuntu 18.04 LTS) Usage Checkout example Fea

Woodemi Co., Ltd 16 Nov 20, 2021