Skip to content
/ anvil Public

A Docker Development Build and Test Container where Projects are hammered into shape

License

Notifications You must be signed in to change notification settings

axrs/anvil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anvil

A Docker Development Build and Test Container where Projects are hammered into shape.

Anvil: a heavy iron block with a flat top and concave sides, on which metal can be hammered and shaped.

Docker Pulls

Base Image Debian:bullseye-slim.


Tags

A list of all Docker Image Tags can be found at Docker Hub

There are a variety of different containers and combinations that can be used. The tools and frameworks included in each are outlined below.

The following tools are contained within each build:

Dart

  • Bash
  • Dart SDK
  • Git
  • Powershell

Java

Everything from the dart-* image plus:

  • Java + Maven
  • Clojure + Leiningen

DotNet

Everything from the dart-* image plus:

  • Azure Credential Provider
  • .Net SDK
  • Azure Functions Core Tools 4

Flutter

Everything from the dart-* image plus:

  • Flutter

-Cloud

Everything from image plus:

  • AWS CLI @ 1.x
  • Azure CLI

Analyzing

Anvil has been split into several Images that can be combined in an attempt to reduce the overall size, and to narrow down the scope and purpose. As you can see, the Cloud infrastructure containers (the ones with the AWS and Azure CLI tools) are substantially larger than the others. The Docker tool Dive can be used to investigate the reason for this increase.

FAQ

Why is everything based of the Dart image?

Each of my projects contain various automation scripts and utilities. Historically, these were written with Bash, however a need surfaced for enhanced cross-platform development support. Dart was selected as a high-level wrapper for its ease of use, performance, and native bridges.

Why are the Cloud Images so large?

The Cloud images contain both the AWS and Azure CLIs. Each of which is built using Python. The Azure CLI however includes the Azure Python SDK and many unnecessary (even unused?) API versions of the azure-mgmt-network SDK. Azure SDK Trim could be used to remove some of this bloat, however it comes with a risk that something may not work as intended.

Azure-CLI Weight Issue

Spoiler: Almost 900mb (uncompressed) is the Azure CLI